请,我想实现两个Structs之间的继承。表现非常重要。
示例代码:
struct IntColl
{
}
struct ValidIntColl : IntColl
{
}
来自Visual Studio的消息:
Error 1 Type 'IntColl' in interface list is not an interface
如何收到此错误? IntColl是一个结构,而不是一个接口!
答案 0 :(得分:4)
结构只能实现接口,它们不能继承其他结构。
有关详细信息,请参阅以下其他问题:
答案 1 :(得分:1)
答案 2 :(得分:1)
你也可以使用合成,因为继承在这里不起作用:
struct IntColl
{
}
struct ValidIntColl
{
IntColl MyIntCollField;
}
答案 3 :(得分:0)
C#没有结构继承。您需要将它们更改为类。速度不应该受到太大影响。
答案 4 :(得分:0)
我想创建一个继承自另一个struct的结构,以便将它放到堆栈
你不能:
结构可以实现接口但不能从其他结构继承。
每MSDN
速度非常重要
您假设结构比类慢。虽然可能存在某些速度差异,但我不会明确地做出这个假设。你使用clases / structs 做的内容很可能比内存访问慢。
如果继承是关键要求,那么您需要将对象构建为类而不是结构。或者使用其他模式,如封装(有一个结构是另一个结构的属性)。
如果你能够证明那些类在你的场景中的结构会更慢,那么你唯一的选择就是在结构图中复制必要的字段。