gpt4 book ai didi

c# - VB6 到 C# : IUnknown

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:46 26 4
gpt4 key购买 nike

我在 VB6 中有一个属性,我正试图将其转换为 C#。具体如下:

Public Property Get NewEnum() As IUnknown
'this property allows you to enumerate
'this collection with the For...Each syntax
Set NewEnum = m_coll.[_NewEnum]
End Property

m_coll 是私有(private)变量,现在是 ArrayList 而不是以前的 Collection

m_coll 正在填充我自己的类对象之一。如您所见,此属性属于 IUnknown 类型。

此时我可能没有正确思考,但在 C# 中是否存在与此类属性等效的属性?

最佳答案

如果您希望能够对类执行 foreach(就像您可以通过在 vb6 中将 NewEnum() 公开为 IUnknown 一样),您可以让您的类实现 IEnumerable - 例如:

   public class MyClass : IEnumerable 
{
private List<string> items = new List<string>();

public MyClass()
{
items.Add("first");
items.Add("second");
}


public IEnumerator GetEnumerator()
{
return items.GetEnumerator();
}
}

这将允许您像这样使用它:

  MyClass myClass =new MyClass();
foreach (var itm in myClass)
{
Console.WriteLine(itm);
}

我用过 List<string>为简单起见,但您可以使用 List<yourCustomClass>

关于c# - VB6 到 C# : IUnknown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15911434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com