无法在C#的通用约束中使用结构类型

发现问题时,我在玩通用约束。除了在编译时显示的错误提示,我无法找到答案。


struct MyStruct

{

    public void Get()

    {


    }

}


class MyClass

{

    public void Get()

    {


    }

}



public class Stable<T> where T : MyStruct // NOT Allowed

{


}


public class Stable<T> where T : MyClass //Allowed

{


}


public class Stable<T> where T : struct //Allowed

{


}


public class Stable<T> where T : class //Allowed

{


}


慕村9548890
浏览 116回答 2
2回答

慕莱坞森

默认情况下,结构是密封的,因此您不应在此处使用泛型。用:public class StableStruct : Stable<MyStruct>{}

长风秋雁

一个struct不能从另一个继承struct。因此,在您的示例(不是工作示例)中T,总是必须这样MyStruct,这使得在这里泛型的使用非常无用。
打开App,查看更多内容
随时随地看视频慕课网APP