List 16 執行時沒什麼可處理的情況下用null表示的例子
相反,下面的代碼,在沒什麼要執行的情況下,要使用空Lambda表達式表示的情況。沒必要判定Sample方法的參數action是否為null。如果需要處理的內容不存在的情況下,僅僅用空的Lambda表達式來執行,什麼也不做就返回。
using System;
class Program
{
private static void Sample(Action<string> action)
{
action("Hello!");
}
static void Main(string[] args)
{
Action<string> action = (x) => { };
Sample(action);
action = (x) => Console.WriteLine(x);
Sample(action); // 輸出:Hello!
}
}
List 17 沒什麼可處理的情況下用空表達式的例子
這樣的“什麼也不做的Lambda表達式(或是以前的匿名方法)”,是筆者經常使用的技術。
例如,現在正在寫的程序,具有用戶的操作用報表的形式回放的功能,通過該功能進行自動測試。這個時候,回放中與輸出有關的處理會全部禁用,以提高其運行效率。這些操作的實現,並不需要具有輸出功能的方法對條件進行一個一個的判斷,只要用“空Lambda表達式(匿名方法)”就行了。因此,源代碼仍然能夠維持其簡潔,成功實現了隨時都能夠執行的自動測試效率的目的。