转换为int的null对象会导致NullReferenceException?

Fua*_*kov 2 c# generics casting nullreferenceexception

我有以下通用代码:

public V put(K key, V value){
        Object o = doOp(ClusterOperation.CONCURRENT_MAP_PUT, key, value);           
        return (V)o;
}
Run Code Online (Sandbox Code Playgroud)

问题是,Object o可以为null.当我使用像String这样的对象时,可以将null强制转换为String.但是当V表示int时,则null cast to int抛出NullReferenceException.

有没有足够通用的解决方案并处理int?

谢谢

Ode*_*ded 7

使用default关键字:

if(o == null)
  return default(V);

return (V)o;
Run Code Online (Sandbox Code Playgroud)