コンパイラの警告 (レベル 1) CS1957
更新 : 2007 年 11 月
エラー メッセージ
メンバ 'name' は 'method' をオーバーライドします。実行時のオーバーライド候補は複数あります。どのメソッドが呼び出されるかは実装に依存します。
ref か out かのみが異なるメソッド パラメータは、実行時に区別されません。
この警告を回避するには
- メソッドの 1 つに別の名前を付けるか、パラメータの数を変えます。
使用例
次のコードは CS1957 を生成します。
// cs1957.cs
class Base<T, S>
{
public virtual string Test(out T x) // CS1957
{
x = default(T);
return "Base.Test";
}
public virtual void Test(ref S x) { }
}
class Derived : Base<int, int>
{
public override string Test(out int x)
{
x = 0;
return "Derived.Test";
}
static int Main()
{
int x;
if (new Derived().Test(out x) == "Derived.Test")
return 0;
return 1;
}
}