我有一个要求,我需要知道GetEnumerator()
.
我能想到的最好的方法可能是将默认行为覆盖到GetEnumerator
我创建的行为上,GetEnumerator([CallerMemberName]string caller = null)
但我似乎无法这样做,因为任何调用它的东西仍然会使用原始行为。
public class MyItems : IEnumerable<string>
{
private List<string> items = new List<string>();
public MyItems()
{
items.Add("One");
items.Add("Two");
items.Add("Three");
items.Add("Four");
items.Add("Five");
items.Add("Six");
}
public IEnumerator<string> GetEnumerator()
{
return items.GetEnumerator();
}
public IEnumerator<string> GetEnumerator([CallerMemberName]string caller = null)
{
var method = caller;
return items.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
一些调用代码的示例可能是
private void button1_click(object sender,EventArgs e)
{
MyItems items = new MyItems();
foreach (var item in items)
{
}
}
目的是我想知道"button1_click"
例如GetEnumerator()
方法