如何实现两个结构之间的继承

本文关键字:结构 之间 继承 两个 何实现 实现 | 更新日期: 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 执行的操作很可能比内存访问慢。

如果继承是一个关键要求,则需要将对象构建为类而不是结构。 或者使用另一种模式,如封装(让一个结构成为另一个结构的属性(。

如果可以证明类在方案中比结构慢,则唯一的选择可能是复制结构图中的必要字段。