繁体   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