我需要检查一个对象是否包含任何值。如果对象是String类型,则以下函数可以正常工作,但我希望在不检查类型的情况下用通用方法替换它。有没有办法做到这一点?提前谢谢。
public void SetValue(int id, object fieldData)
{
if (fieldData!=null)
{
if (fieldData.GetType() == typeof(String) && fieldData.Equals(string.Empty))
{
return;
}
}
SetLOValue(id, fieldData);
}
答案 0 :(得分:3)
如果您将其设为通用类型,则可以检查默认类型,但您必须确保这是您想要的。即0是您使用中的有效数字?
if (fieldData == default(T))
{
return;
}
或者,您可以切换到Nullable类型。
if (fieldData.HasValue)...
答案 1 :(得分:1)
您可以使用dynamic
。
CLR在运行时确定类型并获取属性。