如何检查对象是否包含值?

时间:2012-04-03 14:37:16

标签: c# .net

我需要检查一个对象是否包含任何值。如果对象是String类型,则以下函数可以正常工作,但我希望在不检查类型的情况下用通用方法替换它。有没有办法做到这一点?提前谢谢。

 public void SetValue(int id, object fieldData)
    {
        if (fieldData!=null)
        {
            if (fieldData.GetType() == typeof(String) && fieldData.Equals(string.Empty))
            {
                return;
            }
        }

        SetLOValue(id, fieldData);
    }

2 个答案:

答案 0 :(得分:3)

如果您将其设为通用类型,则可以检查默认类型,但您必须确保这是您想要的。即0是您使用中的有效数字?

if (fieldData == default(T))
{
  return;
}

或者,您可以切换到Nullable类型。

if (fieldData.HasValue)...

答案 1 :(得分:1)

您可以使用dynamic

CLR在运行时确定类型并获取属性。