我试图弄清楚我的代码是什么问题.
我有这个代码:
我有这个代码:
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结构像类?
解决方法
结构隐含密封
根据这个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 interface public struct AngryPersonName : PersonName { public string AngryNickname; }