public static I CreateInstance<I>(string myClassName) where I : class Debug.Log("Instance: " + (Activator.CreateInstance(null, myClassName) as I));}
void Test
目前,我已经为DataRow编写了将行值转换为特定类型对象的扩展方法,该方法如下所示:Public Function GetValue(Of T)(rowIf Not row.Table.Columns.Contains(columnName) Then
Return Activator.CreateInstance(Of T)()'IF ROW IS DB NULL RETURN DEFAULT OF T</
我有一个泛型类,它应该允许任何类型,原语或其他类型。唯一的问题是使用default(T)。当您对值类型或字符串调用default时,它会将其初始化为一个合理的值(例如空字符串)。当你在一个对象上调用default(T)时,它返回null。由于各种原因,我们需要确保如果它不是原始类型,那么我们将拥有该类型的默认实例,而不是 null。下面是尝试1:{
if
如果我使用NULL int访问一行,DataReader将返回DbNull.Value而不是null。,我刚刚意识到,得到的整数类型是0而不是NULL。因此,现在我尝试检测datareader返回的对象的类型,并将其转换为一个可空值。
tTypeForNullable正确地显示为Nullable<int>。但是当我看到结果类型时,我得到:int。= new System.Collections.Generic.List<T</