我在 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/