A struct Is Implicitly Sealed

Every struct in C#, whether it is user-defined or defined in the .NET Framework, is sealed–meaning that you can’t inherit from it.  A struct is sealed because it is a value type and all value types are sealed.
A struct can implement an interface, so it’s possible to see another type name following a colon, after the name of the struct.
In the example below, we get a compile-time error when we try to define a new struct that inherits from the one defined above.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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;
}