拜托,我想实现两个结构之间的继承。性能非常重要。
示例代码:
struct IntColl
{
}
struct ValidIntColl : IntColl
{
}
来自 Visual Studio 的消息:
Error 1 Type 'IntColl' in interface list is not an interface
我如何得到这个错误?IntColl 是一个结构,而不是一个接口!
你也可以使用组合,因为继承在这里不起作用:
struct IntColl
{
}
struct ValidIntColl
{
IntColl MyIntCollField;
}
我想创建一个从另一个结构继承的结构,以便将其放入堆栈
你不能:
结构可以实现一个接口,但不能从另一个结构继承。
根据MSDN
速度非常重要
您假设结构比类慢。虽然可能存在一些速度差异,但我不会断然做出这个假设。您对类/结构所做的事情很可能比内存访问慢。
如果继承是关键要求,那么您需要将对象构建为类而不是结构。或者使用另一种模式,如封装(让一个结构成为另一个结构的属性)。
如果您可以证明在您的场景中类会比结构慢,那么您唯一的选择可能是在结构映射中复制必要的字段。
C# 没有结构继承。您需要将它们更改为类。速度不应该受到太大影响。