1

たとえば、次のメソッドを作成するクラスがある場合:

public new string ToString() {
//some code
}

しかし、ObjectクラスからToStringメソッドを呼び出す必要があるとしましょう。どうすればいいですか?

4

2 に答える 2

4

にキャストしてからObject、メソッドを呼び出す必要があります。

class A
{
    public new string ToString()
    {
        return "bugaga!";
    }
}

static void Main(string[] args)
{
    var a = new A();

    Console.WriteLine(a.ToString());
    Console.WriteLine(a); // here object 'a' will be casted to object
}

出力:

bugaga!
ConsoleApplication4.Program+A
于 2012-09-06T15:10:29.963 に答える
1

を使用((Object)myvariable).ToString()して、ベースにキャストバックします。

詳細はこちら:

http://msdn.microsoft.com/en-us/library/6fawty39(v=vs.100).aspx

でも、本当にクラスで新しい ものを作成したいToString()ですか?代わりに、元の実装をオーバーライドするのが一般的です。

http://msdn.microsoft.com/en-us/library/ms173154(v=vs.100).aspx

于 2012-09-06T15:12:34.877 に答える