エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

Object.ToString メソッド

現在のオブジェクトを表す文字列を返します。

名前空間:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public virtual string ToString()

戻り値

型 : System.String
現在のオブジェクトを表す文字列。

ToString は、.NET Framework における主要な書式指定メソッドです。 表示用にオブジェクトを文字列表現に変換します。(.NET Framework の書式指定のサポートの詳細については、「型の書式設定」を参照してください。)

ToString メソッドの既定の実装は、次の例のように、Object の型の完全修飾名を返します。


using System;

public class Example
{
   public static void Main()
   {
      Object obj = new Object();
      Console.WriteLine(obj.ToString());
   }
}
// The example displays the following output:
//      System.Object


Object は .NET Framework のすべての参照型の基本クラスであるため、この動作は ToString メソッドをオーバーライドしない参照型によって継承されます。 次に例を示します。 この例では、すべての Object メンバーの既定の実装を受け入れる、Object1 という名前のクラスを定義しています。 ToString メソッドは、オブジェクトの完全修飾型名を返します。


using System;
using Examples;

namespace Examples
{
   public class Object1
   {
   }
}

public class Example
{
   public static void Main()
   {
      object obj1 = new Object1();
      Console.WriteLine(obj1.ToString());
   }
}
// The example displays the following output:
//   Examples.Object1


通常、型が ToString メソッドをオーバーライドして、オブジェクト インスタンスを表す文字列を返します。 たとえば CharInt32String などの基本データ型は、オブジェクトが表す値を文字列として返すために ToString の実装を提供します。 次の例では、ToStringメソッドをオーバーライドするクラス (Object2) を定義して、型名と値を返します。


using System;

public class Object2
{
   private object value;

   public Object2(object value)
   {
      this.value = value;
   }

   public override string ToString()
   {
      return base.ToString() + ": " + value.ToString();
   }
}

public class Example
{
   public static void Main()
   {
      Object2 obj2 = new Object2('a');
      Console.WriteLine(obj2.ToString());
   }
}
// The example displays the following output:
//       Object2: a


Windows ランタイムに関するメモ

Windows ランタイムクラスの ToString のメソッドを呼び出すと、ToStringをオーバーライドしないクラスの既定の動作を示します。 これは、.NET Framework が Windows ランタイムに提供するサポートの一部です (「Windows ストア アプリおよび Windows ランタイムのための .NET Framework サポート」を参照してください)。 Windows ランタイム クラスは Objectを常に継承しない、ToStringを実装しません。 ToString Equals(Object)C# または Visual Basic コードで使用する、.NET Framework は、これらのメソッドの既定の動作を提供します。ただし、および GetHashCode のメソッドがあり、これらは常に表示されます。

.NET Framework 4.5.1以降では、共通言語ランタイムは Windows ランタイム IStringable.ToString オブジェクトで Object.ToStringの既定の実装がドロップ前に使用します。

メモメモ

C# または Visual Basic で記述されたWindows ランタイム クラスは ToString のメソッドをオーバーライドできます。

7bxwbwt2.collapse_all(ja-jp,VS.110).gifWindows ランタイム と IStringable インターフェイス

Windows 8.1以降では、Windows ランタイム は単一のメソッドが IStringableIStringable.ToStringObject.ToStringで提供される同期に相当する基本的な書式設定機能を提供するインターフェイスが含まれています。 あいまいな参照を回避するには、マネージ型で実装する IStringable 必要があります。

マネージ オブジェクトをネイティブ コードまたは JavaScript または C++/CX などの言語で作成されたコードから呼び出されたときに実装する必要 IStringableがあります。 共通言語ランタイムは、マネージ オブジェクトのイベント IStringable.ToStringIStringableObject.ToString で自動的に呼び出しを実装されませんルーティングします。

Caution メモ注意

独自の IStringableIStringable 実装を提供しないことを Windows ストア のアプリケーション内のすべてのマネージ型の共通言語ランタイムの自動実装が、お勧めするため。 実装は IStringable、予期しない動作が Windows ランタイム、C++/CX または JavaScript に ToString を呼び出すと可能性が表示されます。

Windows ランタイム コンポーネント IStringable でエクスポートされるパブリックなマネージ型に実装する場合は、次の制限が適用されます。:

  • 実装します」関係を IStringable、「などのクラスにインターフェイスを定義できます。

    public class NewClass : IStringable
    

    C# では、

    Public Class NewClass : Implements IStringable
    

    Visual Basic。

  • インターフェイスの実装 IStringable できません。

  • IStringableとしてパラメーターを宣言することはできません。

  • IStringable メソッド、プロパティ、またはフィールドの戻り値の型は指定できません。

  • 基本クラスから次 IStringable のようなメソッド定義を使用して実装を隠ぺいできません:

    
    public class NewClass : IStringable
    {
       public new string ToString()
       {
          return "New ToString in NewClass";
       }
    }
    
    

    代わりに、IStringable.ToString 実装は、基本クラスの実装を常にオーバーライドする必要があります。 厳密に型指定されたクラスのインスタンスでの呼び出しによってのみ ToString の実装を隠ぺいできます。

ことにさまざまな条件、ネイティブ コードから実装 IStringable または非表示が実装予期しない動作が起きることができるマネージ ToString 型への呼び出しの下に注意してください。

継承時の注意

独自の型を実装する場合は、それらの型に対応する値を返すように ToString メソッドをオーバーライドする必要があります。 ToString よりも書式指定を厳密に制御する必要がある派生クラスには、IFormattable インターフェイスを実装できます。 その IFormattable.ToString(String, IFormatProvider) メソッドを使用すると、書式設定を制御する書式指定文字列を定義し、カルチャ固有の書式設定を提供できる IFormatProvider オブジェクトを使用できます。

ToString のメソッドのオーバーライドは、次のガイドラインに従う必要があります:

  • 返される文字列は、ユーザーによってフレンドリ名、読み取り可能です。

  • 返される文字列は、オブジェクト インスタンスの値を指定する必要があります。

  • 返される文字列は、デバッガーによって表示に適しているように可能な限り短いものである必要があります。

  • ToString のオーバーライドは String.Empty または null 文字列を返すことはありません。

  • ToString のオーバーライドが例外をスローする必要があります。

  • インスタンスの文字列形式がカルチャに依存した、または複数のように設定している場合は IFormattable インターフェイスを実装してください。

  • 返される文字列に機密情報が含まれている場合は、最初に適切なアクセス許可を要求する必要があります。 確認要求が成功すると、機密情報を返すことができます。; それ以外の場合は、機密情報を含む文字列を返します。

  • ToString のオーバーライドはデバッグの問題を回避明らかな影響がありません。 たとえば、ToString のメソッドの呼び出しは、インスタンス フィールドの値が変更されることはありません。

  • 型が解析メソッド (または Parse または TryParse のメソッド、コンストラクター、または文字列からの型のインスタンスをインスタンス化する他の静的メソッド) 実装すれば、ToString のメソッドから返された文字列が、オブジェクト インスタンスを変換できることを確認する必要があります。

.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

追加
表示:
© 2015 Microsoft