then - C#equivalente de la función IsNull() en SQL Server
null expression c# (7)
En SQL Server puede usar la función IsNull()
para verificar si un valor es nulo, y si lo es, devolver otro valor. Ahora me pregunto si hay algo similar en C #.
Por ejemplo, quiero hacer algo como:
myNewValue = IsNull(myValue, new MyValue());
en lugar de:
if (myValue == null)
myValue = new MyValue();
myNewValue = myValue;
Gracias.
Esto se entiende como una broma, ya que la pregunta es un poco tonto.
public static bool IsNull (this System.Object o)
{
return (o == null);
}
Este es un método de extensión, sin embargo extiende System.Object, por lo que cada objeto que utiliza ahora tiene un método IsNull ().
Entonces puedes guardar toneladas de código haciendo:
if (foo.IsNull())
en lugar del supercoco:
if (foo == null)
Lamentablemente, no existe un equivalente para el operador coalescente nulo que trabaja con DBNull; para eso, necesitas usar el operador ternario:
newValue = (oldValue is DBNull) ? null : oldValue;
Para trabajar con DB Nulls, creé un montón para mis aplicaciones de VB. Los llamo Cxxx2 ya que son similares a las funciones Cxxx integradas de VB.
Puedes verlos en mi proyecto CLR Extensions
http://www.codeplex.com/ClrExtensions/SourceControl/FileView.aspx?itemId=363867&changeSetId=17967
Se llama el operador coalescente nulo ( ??
):
myNewValue = myValue ?? new MyValue();
Use el método Equals:
object value2 = null;
Console.WriteLine(object.Equals(value2,null));
Usted escribe dos funciones
//When Expression is Number
public static double? isNull(double? Expression, double? Value)
{
if (Expression ==null)
{
return Value;
}
else
{
return Expression;
}
}
//When Expression is string (Can not send Null value in string Expression
public static string isEmpty(string Expression, string Value)
{
if (Expression == "")
{
return Value;
}
else
{
return Expression;
}
}
Funcionan muy bien
public static T isNull<T>(this T v1, T defaultValue)
{
return v1 == null ? defaultValue : v1;
}
myValue.isNull(new MyValue())