1行でそれを行うための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;
}
}