是否有任何人知道,如果C#有ObjPtr从VB6等同或等效的功能(参见下面的详细信息)? 这里有几个环节上ObjPtr信息devx , thevbzone 。
基本上我有一个第三方的TreeView,我需要走通获得特定节点,但唯一的(相关)信息的节点已经是名...但节点名称不必是唯一的。 所以我需要一个独特的价值对每个节点,因为我走通了第一次,所以当我走通这一次我知道哪个是哪个。 在老同学VB6天我会用ObjPtr。
任何想法或建议?
FK
是否有任何人知道,如果C#有ObjPtr从VB6等同或等效的功能(参见下面的详细信息)? 这里有几个环节上ObjPtr信息devx , thevbzone 。
基本上我有一个第三方的TreeView,我需要走通获得特定节点,但唯一的(相关)信息的节点已经是名...但节点名称不必是唯一的。 所以我需要一个独特的价值对每个节点,因为我走通了第一次,所以当我走通这一次我知道哪个是哪个。 在老同学VB6天我会用ObjPtr。
任何想法或建议?
FK
如果他们的对象,为什么不直接存储对象引用? 这些都将是独一无二的。
您可以使用Object.ReferenceEquals(x, y)
以确定是否已存储的参考指的是你刚刚从树上获取相同的对象。
最接近的直接等同我能想到的是使用一个的GCHandle来获得一个IntPtr你的对象引用。
您将需要分配的GCHandle为对象(GCHandle.Alloc),然后用GCHandle.ToIntPtr转换为一个IntPtr。 链接的文档显示过程。
如果树节点有FULLPATH属性,你可以用它来唯一地标识在TreeView的一个节点(的WinForms树形有FULLPATH属性)。 这不会是唯一的,如果2个兄弟姐妹有这相同的文本。
要么
你可以使用手柄树节点的属性。
GetHashCode的应,除非第三方已重写的东西,没有意义在方案对象实现测试的独特的价值观很好地工作。
我假设树中的节点将通过不仅仅是字符串值更明确平等/哈希码,但你需要检查。