C# 4.0 中是否支持在一行中做到这一点?
我为对象做了:
if (ReferenceEquals(null, myDynamicVar))
所以现在我需要看看这是否为零。如何做到这一点,是否有一个可以同时做到的声明?
if (ReferenceEquals(null, myDynamicVar) || Equals(0, myDynamicVar)) ...
public bool IsDefault<T>(T value)
{
if(value == null) return true;
return value.Equals(default(T));
}
int v = 5;
object o = null;
IsDefault(v); //False
IsDefault(0); //True
IsDefault(o); //True
IsDefault("ty"); //False
邋遢:
if (ReferenceEquals(null, myDynamicVar) || myDynamicVar ==
(myDynamicVar.GetType().IsValueType ? Activator.CreateInstance(myDynamicVar.GetType()) : null)
{
//Code greatness
}
清洁器:
public static bool IsDefault(dynamic input)
{
if (input == null)
{
return true;
}
else if (input.GetType().IsValueType)
{
return input == Activator.CreateInstance(input.GetType());
}
else
{
return false;
}
}