В SQL Server вы можете использовать эту IsNull()
функцию, чтобы проверить, является ли значение нулевым, и, если это так, вернуть другое значение. Теперь мне интересно, есть ли что-нибудь подобное в C #.
Например, я хочу сделать что-то вроде:
myNewValue = IsNull(myValue, new MyValue());
вместо того:
if (myValue == null)
myValue = new MyValue();
myNewValue = myValue;
Спасибо.
c#
.net
sql-server
isnull
Аид
источник
источник
this.BinaryExists = vModel.BinaryExists ?? 0;
наthis.BinaryExists = vModel.BinaryExists ?? false;
.К сожалению, нет эквивалента оператору объединения NULL, который работает с DBNull; для этого вам нужно использовать тернарный оператор:
источник
(object)oldValue ?? (object)DBNull.Value)
будет эквивалентен тому,((object)oldValue == null) ? (object)DBNull.Value : (object)oldValue
что решает проблема, которую решает Роберт Россни.источник
new MyValue()
будет выполняться, даже еслиmyValue
не равно нулю и это не требуется !!Используйте метод Equals:
источник
Для работы с DB Nulls я создал связку своих VB приложений. Я называю их Cxxx2, поскольку они похожи на встроенные в VB функции Cxxx.
Вы можете увидеть их в моем проекте расширений CLR.
http://www.codeplex.com/ClrExtensions/SourceControl/FileView.aspx?itemId=363867&changeSetId=17967
источник
Вы пишете две функции
Они работают очень хорошо
источник
Я использовал следующий метод расширения для своих типов DataRow:
использование:
Сначала я проверяю наличие столбца, потому что, если ни один из результатов запроса не имеет ненулевого значения для этого столбца, объект DataTable даже не предоставит этот столбец.
источник
Используйте нижеприведенные методы.
источник
источник
Это наполовину шутка, поскольку вопрос довольно глупый.
Это метод расширения, однако он расширяет System.Object, поэтому каждый используемый вами объект теперь имеет метод IsNull ().
Тогда вы можете сэкономить массу кода, выполнив:
вместо супер хромого:
источник
Object
объект, с которым можно работать, и если объект был Nothing (именно тот случай, который вы пытаетесь проверить в этом Q), не было экземпляра для класса расширения для работы, и, следовательно, он бы выбросить исключение NullObject.Object
в VB. См. Этот вопрос SO или это сообщение в блоге .