可能性のある複製:
既存の静的クラスに拡張メソッドを追加できますか?
静的拡張メソッドをクラスに追加する方法はありますか。
具体的には、Boolean.Parseをオーバーロードしてint引数を許可します。
要するに、いいえ、できません。
長い答え、拡張メソッドは単なる構文上の砂糖です。 IE:
文字列に拡張メソッドがある場合は、次のようにします。
public static string SomeStringExtension(this string s)
{
//whatever..
}
それを呼び出すとき:
myString.SomeStringExtension();
コンパイラはそれを次のように変換します。
ExtensionClass.SomeStringExtension(myString);
ご覧のとおり、静的メソッドに対してこれを行う方法はありません。
そして、もう1つ思い付いたのは、既存のクラスに静的メソッドを追加できるpointとはどういうことでしょうか?同じことを行う独自のヘルパークラスを持つことができるため、実際にできることの利点は次のとおりです。
Bool.Parse(..)
vs.
Helper.ParseBool(..);
本当にテーブルに多くをもたらしません...
具体的には、Boolean.Parseをオーバーロードしてint引数を許可します。
Intの拡張は機能しますか?
public static bool ToBoolean(this int source){
//do it
//return it
}
その後、次のように呼び出すことができます。
int x = 1;
bool y=x.ToBoolean();
できるようには見えません。 それについての議論はこちらをご覧ください
私は間違っていることを証明したいのですが。