への呼び出し方法を知る必要があるという要件があります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()