C# 作为泛型参数的可空类型

C# 作为泛型参数的可空类型,c#,C#,我正在尝试实现一个存储泛型可空类型的类: public class myclass<T?> { T? myvariable; public T? myfunction(){ return myvariable; } } 公共类myclass { T?myvariable; 公共T?myfunction(){ 返回myvariable; } } 虽然上面的类编译得很好,但实际使用带来了麻烦: myclass<int?> c =

我正在尝试实现一个存储泛型可空类型的类:

public class myclass<T?>
{
    T? myvariable;

    public T? myfunction(){
        return myvariable;
    }
 }
公共类myclass
{
T?myvariable;
公共T?myfunction(){
返回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.
myclass c=newmyclass();
国际?=c、 myfunction();//不起作用:从类型T隐式转换?整数?不可能。
//或者,假设变量不是null
int=c.myfunction().Value;//不可能从int中的类型T执行隐式强制转换。

我做错了什么,或者如何解决这个问题?

两个示例都没有:

  • 的语法无效;它应该是
  • 第二个示例的第一行应该是:
    myclass c=newmyclass()

但是,第二个示例的其余部分应该可以编译。

而您的示例没有意义。你想实现什么?事实上它并没有编译。。。抱歉,语法检查器中必须包含其他错误。我与achive绑定的是一个存储可空类型的类。(上例中缺少的是设置变量的部分)