为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕村9548890 2021-05-17 17:09:22
发现问题时,我在玩通用约束。除了在编译时显示的错误提示,我无法找到答案。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{}
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

默认情况下,结构是密封的,因此您不应在此处使用泛型。


用:


public class StableStruct : Stable<MyStruct>

{

}


查看完整回答
反对 回复 2021-05-23
?
长风秋雁

TA贡献1757条经验 获得超7个赞

一个struct不能从另一个继承struct。因此,在您的示例(不是工作示例)中T,总是必须这样MyStruct,这使得在这里泛型的使用非常无用。


查看完整回答
反对 回复 2021-05-23
  • 2 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信