拡張メソッドの正体
拡張メソッドは、C#特有のものではありません。.NET Frameworkにある属性(System.Runtime.CompilerServices.ExtensionAttribute)を使用すれば、他言語でも拡張メソッドの宣言を行う事が出来ます。
拡張メソッドの実現方法も簡単です。ILレベルでは、静的クラスなどに定義されている、ExtensionAttribute属性を適用したメソッドを、素直に呼び出しているだけです。例えば、C#の拡張メソッドに掲載したSample1の場合、ローカル変数iを引数として扱い、ConsoleUtility.Printメソッドを呼び出しています。