如果要讓程序實現迭代程序以遍歷列表中的元素,則需要使用 foreach 循環修改此迭代程序使其遍歷元素數組,並在每次迭代中產生數組中的每個項目:
public class List
{
internal object[] elements;
internal int count;
public object foreach()
{
foreach(object o in elements)
{
yIEld o;
}
}
}
迭代程序的工作原理
迭代程序代表所在的程序處理實現枚舉器模式的日常操作。C# 編譯器將您在迭代程序中編寫的代碼轉換成使用枚舉器模式的相應類和代碼,而無需創建類和建立狀態機。通過這種方式,迭代程序顯著提高了開發人員的工作效率。
匿名方法
匿名方法是另一種實用的語言結構,它使程序員能夠創建可裝箱在委托中、並且可在以後執行的代碼塊。它們基於稱作 λ 函數的語言概念,並且類似於 Lisp 和 Python 中的對應語言概念。
創建委托代碼
委托是引用方法的對象。調用委托時,將調用它所引用的方法。以下示例舉例說明了一個簡單的窗體,其中包含列表框、文本框和按鈕三個控件。初始化按鈕時,程序將指示其 Click 委托引用該對象中其他位置存儲的 AddClick 方法。在 AddClick 方法中,文本框的值存儲在列表框中。由於 AddClick 方法被添加到按鈕實例的 Click 委托中,因此每次單擊該按鈕時都將調用此方法。
public class MyForm
{
ListBox listBox;
TextBox textBox;
Button button;
public MyForm()
{
listBox = new ListBox(...);
textBox = new TextBox(...);
button = new Button(...);
button.Click += new EventHandler(AddClick);
}
void AddClick(object sender, EventArgs e)
{
listBox.Items.Add(textBox.Text);
}
}