C# · 12月 25, 2021

c# – 继承自struct

我试图弄清楚我的代码是什么问题.
我有这个代码: public struct MyStructA{ public MyStructA(string str) { myString= str; } public string myString;}public struct MyStructB: MyStructA{ public string myReveRSString;}

我得到这个错误:

Error at compile time: Type ‘MyStructA’ in interface list is not an interface

我不明白为什么? .net不是implemnet结构像类?

解决方法@H_301_13@ 结构隐含密封

根据这个link:

C#中的每个结构,无论是用户定义还是在.NET Framework中定义,都是密封的,这意味着您无法从其继承.结构是密封的,因为它是一个值类型,所有的值类型都是密封的.

一个结构体可以实现一个接口,所以可以在结尾的名字之后看到一个冒号后面的另一个类型名.

在下面的例子中,当我们尝试定义一个继承自上面定义的结构的新结构时,我们得到一个编译时错误.

public struct PersonName{ public PersonName(string first,string last) { First = first; Last = last; } public string First; public string Last;}// Error at compile time: Type ‘PersonName’ in interface list is not an interfacepublic struct AngryPersonName : PersonName{ public string AngryNickname;}