如何实现两个结构之间的继承
本文关键字:结构 之间 继承 两个 何实现 实现 | 更新日期: 2023-09-27 18:33:32
拜托,我想实现两个结构之间的继承。性能非常重要。
示例代码:
struct IntColl
{
}
struct ValidIntColl : IntColl
{
}
来自 Visual Studio 的消息:
Error 1 Type 'IntColl' in interface list is not an interface
如何收到此错误?IntColl是一个结构体,而不是一个接口!
结构只能
实现接口,不能继承其他结构。
有关详细信息,请参阅以下其他问题:
- 为什么不能继承 C# 结构?
- 为什么结构不支持继承?
struct (C# Reference(
结构可以实现接口,但不能从另一个结构继承。
所以你根本无法从struct
继承来创建另一个struct
。
您也可以使用组合,因为继承在这里不起作用:
struct IntColl
{
}
struct ValidIntColl
{
IntColl MyIntCollField;
}
C# 没有结构继承。您需要将它们更改为类。速度不应该受到太大影响。
我想创建一个从另一个结构继承的结构,以便将其放在堆栈上
您不能:
结构可以实现接口,但不能从另一个结构继承。
每个 MSDN
速度非常重要
您假设结构比类慢。 虽然可能存在一些速度差异,但我不会断然做出这个假设。 您对 clases/structs 执行的操作很可能比内存访问慢。
如果继承是一个关键要求,则需要将对象构建为类而不是结构。 或者使用另一种模式,如封装(让一个结构成为另一个结构的属性(。
如果可以证明类在方案中比结构慢,则唯一的选择可能是复制结构图中的必要字段。