ToString メソッドをオーバーライドする方法 (C# プログラミング ガイド)

C# では、すべてのクラスまたは構造体が、暗黙的に Object クラスを継承します。 そのため、C# のすべてのオブジェクトが ToString メソッドを取得し、そのオブジェクトの文字列表現を返します。 たとえば、int 型の変数はすべて ToString メソッドを持ち、次のようにその変数の内容を文字列として返すことができます。

int x = 42;
string strx = x.ToString();
Console.WriteLine(strx);
// Output:
// 42

カスタムのクラスまたは構造体を作成するときは、クライアント コードにカスタム型の情報を提供するため、ToString メソッドをオーバーライドする必要があります。

ToString メソッドで書式設定文字列やその他のカスタム形式を使用する方法については、「型の書式設定」を参照してください。

重要

このメソッドを使用して提供する情報を決定するときは、作成したクラスまたは構造体が信頼関係のないコードによって使用されるかどうかを考慮します。 悪意があるコードで利用される可能性がある情報を提供しないように注意してください。

クラスまたは構造体内の ToString メソッドをオーバーライドする手順

  1. 次の修飾子および戻り値の値を指定して、ToString メソッドを宣言します。

    public override string ToString(){}  
    
  2. 文字列を返すように、メソッドを実装します。

    次の例では、特定のクラス インスタンスに固有のデータに加えて、クラス名も返されます。

    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
    

関連項目