c# – 继承自struct

前端之家收集整理的这篇文章主要介绍了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结构像类?

解决方法

结构隐含密封

根据这个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;
}

猜你在找的C#相关文章