代码之家  ›  专栏  ›  技术社区  ›  Gern Blanston

C 35;中VB6的ObjPtr等价(功能)?

  •  1
  • Gern Blanston  · 技术社区  · 15 年前

    devx , thevbzone .

    基本上我有一个第三方treeview,我需要遍历它来获取特定的节点,但是这些节点仅有的(相关的)信息是名称。。。但是节点名不需要是唯一的。所以当我第一次遍历每个节点时,我需要为它获取一个唯一的值,所以当我再次遍历它时,我知道哪个是哪个。在老派的VB6时代,我会使用ObjPtr。

    4 回复  |  直到 5 年前
        1
  •  2
  •   Lasse V. Karlsen    15 年前

    如果它们是对象,为什么不直接存储对象引用呢?这些将是独一无二的。

    Object.ReferenceEquals(x, y) 要确定已存储的引用是否引用刚从树中检索的同一对象。

        2
  •  1
  •   Reed Copsey    15 年前

    我能想到的最接近的直接等价物是使用GCHandle为对象引用获取IntPtr。

    GCHandle.ToIntPtr 转换为IntPtr。链接的文档显示了该过程。

        3
  •  1
  •   MarkJ    15 年前

    如果treenode具有FullPath属性,则可以使用它唯一标识treeview中的节点(Winforms treeview具有 FullPath

    或者

    你可以用 Handle TreeNode的属性。

        4
  •  -2
  •   Eric Nicholson    15 年前

    GetHashCode

    我假设树中的节点不仅仅通过值字符串来定义equality/hashcode,但是您需要检查。