匿名メソッドのパラメータのスコープは、匿名メソッド ブロックです。
匿名メソッド ブロックの内部で使用しているジャンプ ステートメント (goto、break、continue など) のジャンプ先がブロックの外部にある場合はエラーになります。また、匿名メソッド ブロックの外部で使用しているジャンプ ステートメント (goto、break、continue など) のジャンプ先がブロックの内部にある場合もエラーになります。
匿名メソッドの宣言をスコープに含むローカル変数とパラメータは、匿名メソッドの外部変数と呼ばれます。たとえば、次のコード セグメントに示されている n は外部変数です。
int n = 0;
Del d = delegate() { System.Console.WriteLine("Copy #:{0}", ++n); };
ローカル変数と違って、取り込まれる変数の有効期間は、匿名メソッドを参照するデリゲートがガベージ コレクションの対象になるまで継続します。n への参照は、デリゲートが作成されたときに取り込まれます。
匿名メソッドは、外部スコープの ref パラメータや out パラメータにアクセスできません。
匿名メソッド ブロック内のアンセーフ コードにはアクセスできません。
匿名メソッドは、is 演算子の左辺では使用できません。