gpt4 book ai didi

c# - 两棵树 : one Tree's nodes contains a List of objects; the 2nd Tree's objects contains references to the first Tree's objects. 可以用C#实现吗?

转载 作者:行者123 更新时间:2023-11-30 03:15:02 29 4
gpt4 key购买 nike

我想构建 2 个树结构。第一个树将包含节点,每个节点都有我的 Range 对象的列表:

class Range {
public DateTime Start { get; set; }
public DateTime End { get; set; }
}

树结构如下所示:

enter image description here

然后我想要从第一棵树构建第二棵树。它将具有类似的结构,但是,当对第二棵树中的 Range 对象进行更改时,我希望第一棵树中的 Range 对象也发生变化。实际上,我需要在第一棵树中保存对 Range 对象的引用或指针:

树#2:

enter image description here

C# 是我的首选语言,我知道您可以使用 ref 关键字,但我想知道 C# 是否真的适合这个语言,或者我是否需要像 C++ 这样的指针?

最佳答案

是的,你可以。

您将范围声明为 class (而不是 struct ),因此您将只处理引用(而不是实际值)。

例如,您的 List<Range>是对 Range 的引用集合对象。

Range具有引用语义在 C# 中意味着一些事情,例如:

  • 它只比较完全相同的实例
  • A Range变量可以容纳 null
  • 你总是传递引用,如果这不是你想要的,你需要明确地克隆它
  • ...

您可能想快速回顾一下 reference vs. value semantics .

关于c# - 两棵树 : one Tree's nodes contains a List of objects; the 2nd Tree's objects contains references to the first Tree's objects. 可以用C#实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57342149/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com