この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

IFormattable.ToString メソッド

指定した書式を使用して、現在のインスタンスの値に書式を付けます。

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

string ToString(
	string format,
	IFormatProvider formatProvider
)

パラメーター

format
型 : System.String
使用する書式。
または
IFormattable 実装の型に対して定義されている既定の書式を使用する場合は、null 参照 (Visual Basic の場合は Nothing)。
formatProvider
型 : System.IFormatProvider
値の書式付けに使用するプロバイダー。
または
オペレーティング システムの現在のロケール設定から数値書式情報を取得する場合は、null 参照 (Visual Basic の場合は Nothing)。

戻り値

型 : System.String
指定された書式での現在のインスタンスの値。

ToString メソッドは、値を、複数の方法で表現できる文字列表現に変換します。 その正確な書式は、特定のカルチャ、業務内容、または業界で定義される特定の記号または順序によって決まります。 このメソッドは直接呼び出すことができます。 また、Convert.ToString(Object)Convert.ToString(Object, IFormatProvider) のメソッドと String.Format(String, Object[])Console.WriteLine(String, Object[])StringBuilder.AppendFormat(String, Object[])など、.NET Framework の複合書式指定機能を使用するメソッドによって自動的に呼び出されます。(詳細については、「複合書式設定」を参照してください)。

複合書式設定メソッドは、書式指定文字列の 1 つの書式指定項目に対して、ToString メソッドを 1 回呼び出します。 メソッドに渡されたパラメーターは、呼び出される特定の書式設定メソッド、および書式指定項目の内容によって、次のように異なります。

  • 書式指定項目に書式指定文字列が含まれていない場合 (たとえば、書式指定項目が単に {0} である場合)、その項目には System.String パラメーターの値として null が渡されます。

  • 書式指定項目に書式指定文字列が含まれている場合 ({0:G} など)、その書式指定文字列が System.String パラメーターの値として渡されます。

  • 元のメソッド呼び出しで System.IFormatProvider パラメーターが指定されていない場合は、CultureInfo.CurrentCultureSystem.IFormatProvider パラメーターの値として渡されます。

  • 元のメソッド呼び出しで System.IFormatProvider パラメーターが指定されている場合は、メソッドの呼び出し時に指定されたプロバイダーが System.IFormatProvider が パラメーターの値として渡されます。

メモメモ

オブジェクトの ToString 実装は、複合書式指定メソッドが ICustomFormatter 書式プロバイダーを渡されない場合、またはカスタム書式プロバイダーの Format メソッドが null を返す場合にのみ複合書式指定メソッドによって呼び出されます。

.NET Framework には、IFormatProvider インターフェイスを実装する 3 つの書式プロバイダーが含まれています。

  • NumberFormatInfo は、桁区切り記号に使用される文字や、金額値の通貨記号のスペルと位置など、数値書式情報を指定します。

  • DateTimeFormatInfo は、日付パターンでの年月日の位置など、日付と時刻に関連する書式情報を指定します。

  • CultureInfo には、特定のカルチャの既定の書式情報が含まれています。このような情報には、数値の書式情報や日付と時刻の書式情報などがあります。

また、独自のカスタム書式プロバイダーを定義できます。

実装時の注意

ToString メソッドは、"G" (一般) 書式指定子をサポートする必要があります。 このクラスは "G" 指定子以外にも、使用できる書式指定子のリストを定義できます。 また、このクラスで null の書式指定子を処理できるようにしておく必要があります。 書式と書式制御コードの詳細については、「型の書式設定」を参照してください。

ToString メソッドを実装する Temperature クラスの例を次に示します。 このコード例は、IFormattable クラスのトピックで取り上げているコード例の一部分です。


using System;
using System.Globalization;

public class Temperature : IFormattable
{
   private decimal temp;

   public Temperature(decimal temperature)
   {
      if (temperature < -273.15m) 
        throw new ArgumentOutOfRangeException(String.Format("{0} is less than absolute zero.", 
                                              temperature));
      this.temp = temperature;
   }

   public decimal Celsius
   {
      get { return temp; }
   }

   public decimal Fahrenheit
   {
      get { return temp * 9 / 5 + 32; }
   }

   public decimal Kelvin
   {
      get { return temp + 273.15m; }
   }

   public override string ToString()
   {
      return this.ToString("G", CultureInfo.CurrentCulture);
   }

   public string ToString(string format)
   {
      return this.ToString(format, CultureInfo.CurrentCulture);
   }

   public string ToString(string format, IFormatProvider provider) 
   {
      if (String.IsNullOrEmpty(format)) format = "G";
      if (provider == null) provider = CultureInfo.CurrentCulture;

      switch (format.ToUpperInvariant())
      {
         case "G":
         case "C":
            return temp.ToString("F2", provider) + " °C"; 
         case "F":
            return Fahrenheit.ToString("F2", provider) + " °F";
         case "K":
            return Kelvin.ToString("F2", provider) + " K";
         default:
            throw new FormatException(String.Format("The {0} format string is not supported.", format));
      }
   }
}


.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