Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保留TreeNode参考可以吗?_C#_.net_Winforms_Treeview - Fatal编程技术网

C# 保留TreeNode参考可以吗?

C# 保留TreeNode参考可以吗?,c#,.net,winforms,treeview,C#,.net,Winforms,Treeview,默认情况下,在TreeViews中以设计器模式创建树节点时,VisualStudio不会在类级别保留树节点上的引用 我发现,对于我经常访问的一些节点,引用它们要比通过名称属性访问它们容易得多,因为键入它们更容易 然而,我想知道这种方法是否有一些缺点?在我的例子中,只要应用程序仍在运行,这些树节点就会保持活动状态,所以我的猜测是,保持这样的引用不会有什么坏处,但只是检查一下,有趣的是,我找不到任何类似的问题或文本…我认为在您的案例中,您可以毫无问题地保持引用。 记住,一旦引用过时,就要立即更新它们

默认情况下,在TreeViews中以设计器模式创建树节点时,VisualStudio不会在类级别保留树节点上的引用

我发现,对于我经常访问的一些节点,引用它们要比通过名称属性访问它们容易得多,因为键入它们更容易


然而,我想知道这种方法是否有一些缺点?在我的例子中,只要应用程序仍在运行,这些树节点就会保持活动状态,所以我的猜测是,保持这样的引用不会有什么坏处,但只是检查一下,有趣的是,我找不到任何类似的问题或文本…

我认为在您的案例中,您可以毫无问题地保持引用。
记住,一旦引用过时,就要立即更新它们。

从技术上讲,它会保留对每个节点的引用,否则您将无法访问它们,它们将被垃圾收集。如果您计划调用一个节点多于其他节点,我想可以创建另一个引用。然后,您将有两个对该节点的引用。

是的,但就资源而言,多引用一个并不昂贵,对吗?事实上,我可以去掉名称字符串,所以我认为它至少会比使用1更贵。引用实际上只是指向内存中该对象位置的指针,而不是它的硬拷贝。只要你至少有一个参考资料。如果你想为易读性创建另一个参考,这似乎是你的情况,对吗?那就去做吧。