【发布时间】:2021-12-21 16:04:28
【问题描述】:
我想将一个结构 (GR) 的成员复制到另一个更大的结构 (FR)
public struct gr
{
public double O,C,L;
public bool isLastFRH, isLastFRL;
}
public gr GR;
// Here I assign values to GR and then I want to copy all these values to FR
public struct fr
{
public double O,C,L;
public bool isLastFRH, isLastFRL;
// it has more variables.
}
public fr FR;
有没有可能不一一完成:
FR.O = GR.O; // and so on...
谢谢
【问题讨论】:
-
@zerocukor287 OP 正在询问结构 - 没有继承可能(如果你建议那些应该是我同意的类 - 它已经超出了结构的推荐大小,而可变结构是 . .. 次优。但这取决于 OP 来决定)
-
是的,这是可能的,但是除非您进行内存复制,否则所有其他解决方案都只会进行成员复制,此外,使用自动映射器完成此任务也很不错。简而言之,只需由成员复制并继续前进
-
@TheGeneral,同意。想要更快的代码?代码。
-
您可以考虑在
struct fr中创建一个struct gr字段,然后您可以分配它。 -
我假设它必须是一个结构(可能是因为您正在执行 p/invoke?)。如果没有,
record类是完美的,因为它默认为您提供深度克隆。我注意到您说过“它必须是用于性能的结构” - 不要陷入认为结构本质上比类或记录更快或更高性能的陷阱。重要的是你对他们做什么!