从泛型方法返回null

Ale*_*dre 8 .net c#

如何从泛型方法返回null值?

protected T ValueOrDefault<T>(IDataReader reader, int ordinalId)
        {  
  Type t = typeof(reader.GetValue(ordinalId));
    if (t.IsValueType){
        //Struct. How do I return null?
    } else { 
        //Class
        //just return  null
        return  default(T);
    }
}
Run Code Online (Sandbox Code Playgroud)

Bro*_*ass 11

default(T) 适用于这两种情况.

  • @Alex,如果你返回Nullable <T>,那么你违反了方法的契约,它应该返回类型T.如果T已经是一个`int?`,那么`default(T)`将工作. (3认同)