同じパラメータで静的メソッドと非静的メソッドを宣言しようとすると、コンパイラはエラーを返します。タイプ「Test」は、同じパラメータタイプで「Load」というメンバーをすでに定義しています。
class Test
{
int i = 0;
public int I
{
get { return i; }
set { i = value; }
}
public bool Load(int newValue)
{
i = newValue;
return true;
}
public static Test Load(int newValue)
{
Test t = new Test();
t.I = newValue;
return t;
}
私が知る限り、これら2つのメソッドを混在させることはできませんが、静的メソッドはオブジェクトで呼び出されますが、静的メソッドはクラスで呼び出されます。なぜコンパイラはこのようなことを許可せず、同様のことを行う方法があるのでしょうか。