我正在尝试实现一个存储通用可空类型的类:
public class myclass<T?>
{
T? myvariable;
public T? myfunction(){
return myvariable;
}
}
虽然上面的类编译得很好,但实际使用会带来麻烦:
myclass<int?> c = new myclass<int>();
int? = c.myfunction(); // does not work: implicit cast from type T? in int? not possible.
// or, assuming the variable is not null
int = c.myfunction().Value; // implicit cast from type T in int not possible.
我做错了什么或如何解决这个问题?
答案 0 :(得分:5)
这两个例子都没有编译:
<T?>
是无效的语法;它应该是<T>
myclass
needs a where T : struct
constraint myclass<int> c = new myclass<int>();
。然而,第二个示例的其余部分应该编译好。