メソッドが拡張メソッドであるかどうかを判断する方法については、完全にはわかりません。次のガイドラインを読みました。
メソッドは、静的クラス ("IntExtensions" など) にある必要があります。
メソッドは「public static」である必要があります(例
public static int Half(this int source)
)
拡張メソッドに関する私の問題は次のとおりです。
- メソッドがどのクラスを拡張しているかを知る方法がわかりません。その前にあるクラス
this
ですか?上記の例では、文字列になりますか? - メソッドを囲む静的クラスはどのような役割を果たしますか? 全体の構文は非常に紛らわしいようです。
- 同じクラスの下にあるさまざまなクラスのさまざまな拡張メソッドをグループ化できませんでしたか (1 つのクラスだけを拡張したいので意味がないようです)。たとえば、次のようになります。
/
public static class IntExtensions
{
// method has to be static, first parameter is tagged with the 'this'
// keyword, the type of the parameter is the type that is extended.
public static int Half(this int source)
{
return source / 2;
}
public static string foo( this string s)
{
//some code
}
}