【问题标题】:Differences between TreeNode and TreeNode[]?TreeNode 和 TreeNode[] 的区别?
【发布时间】:2013-02-15 18:06:47
【问题描述】:

我是新手,我无法查看 TreeNode 和 TreeNode[] 之间的区别,返回的错误是

"Cannot implicitly convert type 'System.Windows.Forms.TreeNode[]' to'System.Windows.Forms.TreeNode' 

【问题讨论】:

  • 感谢春天的编辑!
  • 为什么要减去这个?如果您是 C# 新手(或通用编程),这并不奇怪。

标签: c# treenode


【解决方案1】:

TreeNode[]TreeNode 类型元素的数组。你可以看到更多关于Array at MSDN的信息。

【讨论】:

    【解决方案2】:

    TreeNode 和 TreeNode[] 是不同的。 TreeNode 是单个节点,而 TreeNode[] 是 TreeNode 的数组。

    例如:

    TreeNode(String, TreeNode[]) 是 TreeNode 的重写构造函数。

    public TreeNode(
        string text,
        TreeNode[] children
    )
    

    您不能直接将 TreeNode[] 转换为 TreeNode,而是通过调用单个直通索引。

    【讨论】:

      【解决方案3】:

      TreeNode 表示“一个 TreeNode 对象”。 TreeNode[] 表示“树节点的集合(数组)”

         `TreeNode t = new TreeNode()`
      

      数组必须看起来像这样:

          TreeNode[] ary = new TreeNode[1];
          ary[0] = new TreeNode();
      
          //and vice versa
      
          TreeNode t = ary[0];
      

      【讨论】:

        【解决方案4】:

        []表示它是一个数组,即Treenodes的集合...

        【讨论】:

          【解决方案5】:

          方括号[] 表示一个数组。您的方法似乎返回了一个 TreeNode 对象数组,但您只分配了一个 TreeNode 对象。

          【讨论】:

            【解决方案6】:

            这确实是哈比卜所说的。 [] 表示它是 array,返回的错误说明了您尝试将 TreeNode 数组放入单个 TreeNode 的事实。这是无法做到的。

            如果你这样做

            TreeNode[] nodes = new TreeNode[2]() {new TreeNode(), new TreeNode()}
            TreeNode node = nodes[0] //This will put the first TreeNode from nodes in the node
            

            希望对你有帮助

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-07-09
              相关资源
              最近更新 更多