簡體   English   中英

C#\\ Dynamic \\如果動態var為null(對象類型)或零(值類型),我是否可以簽入一條語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM