ToString メソッドをオーバーライドする方法 (C# プログラミング ガイド)
C# では、すべてのクラスまたは構造体が、暗黙的に Object クラスを継承します。 そのため、C# のすべてのオブジェクトが ToString メソッドを取得し、そのオブジェクトの文字列表現を返します。 たとえば、int
型の変数はすべて ToString
メソッドを持ち、次のようにその変数の内容を文字列として返すことができます。
int x = 42;
string strx = x.ToString();
Console.WriteLine(strx);
// Output:
// 42
カスタムのクラスまたは構造体を作成するときは、クライアント コードにカスタム型の情報を提供するため、ToString メソッドをオーバーライドする必要があります。
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
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET