为什么这段代码初始化一个对象,然后使另一个对象等于它?

时间:2012-10-12 14:51:46

标签: c# reference refactoring

这是功能:

private static void AddToTree(TreeNode target, DataRow dataRow)
{
    var node2 = new TreeNode(dataRow["name"].ToString())
    {
        ImageIndex = target.ImageIndex,
        SelectedImageIndex = target.SelectedImageIndex,
        Tag = dataRow
    };
    TreeNode node = node2;
    target.Nodes.Add(node);
}

我在整个代码库中看到了类似的代码。为什么不将node2添加到目标节点而不创建另一个变量?我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

你没有遗漏任何东西。这段代码是多余的。

TreeNode node = node2; //<--- Assign the object reference of node2 to node. 
                       //     There is no object copy or wathever.

答案 1 :(得分:0)

我认为你可以替换

target.Nodes.Add(node2);

您可以获取参考副本,但为了在第二次与结果查询或其他处理进行比较,但仅使用此代码,您可以替换