インスタンスが null の場合でも拡張メソッドの呼び出しは可能
インスタンスが null の場合にメソッド呼び出しを行うと、System.NullReferenceException 例外が生成されますが、拡張メソッドの場合は、インスタンスが null でも呼び出しが可能です。
using System; public class Foo { public void Hello() { Console.WriteLine("Hello!!"); } } public static class Extension { public static void Goodbye(this Foo foo) { Console.WriteLine("Goodbye!!"); } } class Program { static void Main() { Foo foo = new Foo(); foo.Hello(); // Hello foo.Goodbye(); // Goodbye!! Foo foo2 = null; // foo2.Hello(); // System.NullReferenceException foo2.Goodbye(); // Goodbye!! } }
実行結果です。
Hello!! Goodbye!! Goodbye!!