等效从C#VB6 ObjPtr的(功能)?(Equivalent (functionality) o

2019-09-25 14:52发布

是否有任何人知道,如果C#有ObjPtr从VB6等同或等效的功能(参见下面的详细信息)? 这里有几个环节上ObjPtr信息devx , thevbzone 。

基本上我有一个第三方的TreeView,我需要走通获得特定节点,但唯一的(相关)信息的节点已经是名...但节点名称不必是唯一的。 所以我需要一个独特的价值对每个节点,因为我走通了第一次,所以当我走通这一次我知道哪个是哪个。 在老同学VB6天我会用ObjPtr。

任何想法或建议?

FK

Answer 1:

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

您可以使用Object.ReferenceEquals(x, y)以确定是否已存储的参考指的是你刚刚从树上获取相同的对象。



Answer 2:

最接近的直接等同我能想到的是使用一个的GCHandle来获得一个IntPtr你的对象引用。

您将需要分配的GCHandle为对象(GCHandle.Alloc),然后用GCHandle.ToIntPtr转换为一个IntPtr。 链接的文档显示过程。



Answer 3:

如果树节点有FULLPATH属性,你可以用它来唯一地标识在TreeView的一个节点(的WinForms树形有FULLPATH属性)。 这不会是唯一的,如果2个兄弟姐妹有这相同的文本。

要么

你可以使用手柄树节点的属性。



Answer 4:

GetHashCode的应,除非第三方已重写的东西,没有意义在方案对象实现测试的独特的价值观很好地工作。

我假设树中的节点将通过不仅仅是字符串值更明确平等/哈希码,但你需要检查。



文章来源: Equivalent (functionality) of ObjPtr from VB6 in C#?
标签: c# .net vb6