[英]C# \ Dynamic \ can I check in one statement if dynamic var is null (object type) or zero (value type)
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.