No SQL Server, você pode usar a IsNull()
função para verificar se um valor é nulo e, se for, retornar outro valor. Agora estou me perguntando se há algo semelhante em C #.
Por exemplo, quero fazer algo como:
myNewValue = IsNull(myValue, new MyValue());
ao invés de:
if (myValue == null)
myValue = new MyValue();
myNewValue = myValue;
Obrigado.
c#
.net
sql-server
isnull
HAdes
fonte
fonte
this.BinaryExists = vModel.BinaryExists ?? 0;
parathis.BinaryExists = vModel.BinaryExists ?? false;
.Infelizmente, não há equivalente ao operador de coalescência nulo que funciona com DBNull; para isso, você precisa usar o operador ternário:
fonte
(object)oldValue ?? (object)DBNull.Value)
seria equivalente, o((object)oldValue == null) ? (object)DBNull.Value : (object)oldValue
que é diferente do problema que a solução de Robert Rossney aborda.fonte
new MyValue()
será executado mesmo quandomyValue
não for nulo e não for obrigatório !!Use o método Equals:
fonte
Para trabalhar com DB Nulls, criei um monte para meus aplicativos VB. Eu os chamo de Cxxx2, pois são semelhantes às funções Cxxx integradas do VB.
Você pode vê-los em meu projeto de extensões CLR
http://www.codeplex.com/ClrExtensions/SourceControl/FileView.aspx?itemId=363867&changeSetId=17967
fonte
Você escreve duas funções
Eles funcionam muito bem
fonte
Tenho usado o seguinte método de extensão em meus tipos de DataRow:
uso:
Estou verificando a existência da coluna primeiro, porque se nenhum dos resultados da consulta tiver um valor não nulo para essa coluna, o objeto DataTable nem mesmo fornecerá essa coluna.
fonte
Use os métodos abaixo.
fonte
fonte
Isso é meio que uma piada, já que a pergunta é meio boba.
Este é um método de extensão, no entanto, estende System.Object, então cada objeto que você usa agora tem um método IsNull ().
Então você pode salvar toneladas de código fazendo:
em vez do super coxo:
fonte
Object
objeto real sobre o qual operar, e se o objeto fosse Nothing (precisamente o caso que você está tentando testar neste Q) não havia instância para a classe de extensão operar e, portanto, lançar uma exceção NullObject.Object
em VB. Veja esta pergunta do SO ou esta postagem do blog .