public class StoreController : Controller
{
public string Index()
{
// implicitly specified instance does not work
//return GetMemberName();
// must specify this explicitly
return this.GetMemberName();
}
}
public static class Utilities
{
public static string GetMemberName(this Controller caller,
[CallerMemberName] string memberName = "")
{
return caller.GetType().FullName + "." + memberName;
}
}
this
拡張されるクラスのメソッド内から拡張メソッドを呼び出すときに、明示的に指定する必要があるのはなぜですか?
私のメンタルモデルでは、this
たとえばフィールドを初期化するときなど、通常は省略できます。