protected override Boolean IsValid(String propertyValue)
{
return !String.IsNullOrEmpty(propertyValue) && propertyValue.Trim().Length > 0;
}
Этот метод проверки на C# делает именно то, что я хочу, но я не знал, что вы можете использовать выражение короткого замыкания как это.Это полезно, но я не уверен, почему он работает
Когда свойствоValue имеет значение null, выполнение не требует выполнения второй части выражения для получения логического результата, и если да, то почему вторая часть не выбрасывает исключение null ref для Trim () .Length> 0 позвонить?
Я предполагаю, что вторая часть оценивает значение false или null, но мне любопытно узнать, что здесь происходит.
Извините, если мне не хватает чего-то действительно очевидного, пожалуйста, просветите меня.
God - Мне не хватало чего-то очевидного, что за идиот! - полный пробел в том, что, когда первая часть ложна, вторая часть не имеет значения, и я даже ЗНАЛ, что она была короткоживущей - извините за то, что тратило время людей, что за эмоции для смущения?
Добавлен еще один тег, отражающий мое смущение при наборе текста перед тем, как думать.
Это было вызвано ** полной логической эволюцией ** в дни Turbo Pascal, и она была настроена, если вы все еще хотите оценить все условия или нет. –
, в отличие от этого, вы можете использовать сингл & для побитового и, что заставляет обе стороны оцениваться. –