たとえば、次のメソッドを作成するクラスがある場合:
public new string ToString() {
//some code
}
しかし、ObjectクラスからToStringメソッドを呼び出す必要があるとしましょう。どうすればいいですか?
にキャストしてから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
を使用((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