方法: ToString メソッドをオーバーライドする (C# プログラミング ガイド)
C# のすべてのクラスと構造体は、Object クラスを暗黙的に継承します。 そのため、C# では、すべてのオブジェクトが ToString メソッドを取得します。このメソッドは、該当するオブジェクトの文字列形式を返します。 たとえば、int 型の変数はすべて ToString メソッドを持ち、次のようにその変数の内容を文字列として返すことができます。
int x = 42;
string strx = x.ToString();
Console.WriteLine(strx);
// Output:
// 42
カスタムのクラスまたは構造体を作成するときは、クライアント コードにカスタム型の情報を提供するため、ToString メソッドをオーバーライドする必要があります。
セキュリティに関するメモ |
---|
このメソッドを使用して提供する情報を決定するときは、作成したクラスまたは構造体が信頼関係のないコードによって使用されるかどうかを考慮します。 悪意があるコードで利用される可能性がある情報を提供しないように注意してください。 |
クラスまたは構造体内の ToString メソッドをオーバーライドするには
次の修飾子および戻り値の値を指定して、ToString メソッドを定義します。
public override string ToString(){}
文字列を返すようにメソッドを実装します。
次の例では、特定のクラス インスタンスに固有のデータに加えて、クラス名も返されます。
class Person { public string Name { get; set; } public int Age { get; set; } public override string ToString() { return "Person: " + Name + " " + Age; } }
ToString メソッドをテストする方法を次のコード例に示します。
Person person = new Person { Name = "John", Age = 12 }; Console.WriteLine(person); // Output: // Person: John 12