次の方法で共有


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() { Name = "John", Age = 12 };
    Console.WriteLine(person);
    // Output:
    // Person: John 12
    

こちらもご覧ください