この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

IFormattable.ToString メソッド (String, IFormatProvider)

 

公開日: 2016年10月

指定された書式を使用して現在のインスタンスの値を書式設定します。

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

string ToString(
	string format,
	IFormatProvider formatProvider
)

パラメーター

format
Type: System.String

使用する書式。

または

IFormattable 実装の型に対して定義されている既定の形式を使用するには null 参照 (Visual Basic ではNothing)。

formatProvider
Type: System.IFormatProvider

値を書式設定するために使用するプロバイダー。

または

オペレーティング システムの現在のロケール設定から数値形式の情報を取得するための null 参照 (Visual Basic では Nothing)。

戻り値

Type: System.String

指定された書式の現在のインスタンスの値。

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

複合書式指定メソッドの呼び出し、ToString書式指定文字列内の各書式項目を 1 回のメソッドです。 メソッドに渡されるパラメーターは次のようと呼ばれる特定の書式設定メソッドおよび書式指定項目の内容に依存します。

  • 書式指定項目が、書式指定文字列を含まないかどうか (書式指定項目は、単に場合など、 {0})、渡されるnull値として、System.Stringパラメーター。

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

  • 元のメソッド呼び出しが含まれていない場合、System.IFormatProviderパラメーター、CultureInfo.CurrentCultureの値として渡される、System.IFormatProviderパラメーター。

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

System_CAPS_noteメモ

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

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

  • NumberFormatInfo数値書式設定は 10 進数と桁区切り記号の文字などの情報およびスペルと通貨値の通貨記号の配置を提供します。

  • DateTimeFormatInfo月、日、年の日付のパターン内の位置など、日付に関連して、時間関連の書式情報を提供します。

  • CultureInfo既定の書式の数値書式指定情報を含む特定のカルチャの情報および日付に関連して、時間関連の書式情報を格納します。

さらに、独自のカスタム書式プロバイダーを定義することができます。

実装時の注意:

ToStringメソッドは、"G"(全般) の書式指定子をサポートする必要があります。 "G"指定子だけでなく、クラスは、サポートされている書式指定子の一覧を定義できます。 書式指定子を処理するさらに、クラスを準備する必要がありますnullです。 書式設定と、コードの書式設定の詳細については、次を参照してください。.NET Framework における型の書式設定です。

次の例で、Temperatureを実装するクラス、ToStringメソッドです。 このコード例に示されている例の一部である、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));
      }
   }
}

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: