我试图创建一个通用方法来使用 datarowextension 方法从数据行中读取列值:
public static Nullable<T> SafeRead<T>(DataRow row, string fieldName) where T : struct
{
if (row.HasColumn(fieldName))
{
return row.Field<Nullable<T>>(fieldName) ?? default(Nullable<T>);
}
else
return default(Nullable<T>);
}
public static T SafeRead<T>(DataRow row, string fieldName) where T : class
{
if (row.HasColumn(fieldName))
{
return row.Field<T>(fieldName) ?? default(T);
}
else
return default(T);
}
当我从我的代码中调用这个函数时,编译器会抱怨这两个调用之间有一个不明确的引用,这在我查看方法签名时很明显。但是,我不确定如何在不使用单独方法的情况下处理此问题。