String.Format メソッド

定義

指定した形式に基づいてオブジェクトの値を文字列に変換し、別の文字列に挿入します。

String.Format メソッドを初めて使用する場合は、「String.Format メソッドの概要」 を参照してください。

オーバーロード

Format(IFormatProvider, String, Object[])

文字列内の書式指定項目を、指定した配列内の対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

Format(IFormatProvider, String, Object, Object, Object)

文字列内の書式指定項目を、指定した 3 つのオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

Format(String, Object, Object, Object)

文字列内の書式指定項目を、指定した 3 つのオブジェクトの文字列形式に置き換えます。

Format(IFormatProvider, String, Object, Object)

文字列内の書式指定項目を、指定した 2 つのオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

Format(String, Object, Object)

文字列内の書式指定項目を、指定した 2 つのオブジェクトの文字列形式に置き換えます。

Format(IFormatProvider, CompositeFormat, ReadOnlySpan<Object>)

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

Format(IFormatProvider, String, Object)

指定した文字列内の書式指定項目を、対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

Format(IFormatProvider, String, ReadOnlySpan<Object>)

文字列内の書式指定項目を、指定されたスパン内の対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

Format(String, ReadOnlySpan<Object>)

指定した文字列内の書式指定項目を、指定したスパン内の対応するオブジェクトの文字列形式に置き換えます。

Format(String, Object[])

指定した文字列内の書式指定項目を、指定した配列内の対応するオブジェクトの文字列形式に置き換えます。

Format(String, Object)

文字列内の 1 つ以上の書式指定項目を、指定したオブジェクトの文字列形式に置き換えます。

Format(IFormatProvider, CompositeFormat, Object[])

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

Format<TArg0,TArg1,TArg2>(IFormatProvider, CompositeFormat, TArg0, TArg1, TArg2)

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

Format<TArg0,TArg1>(IFormatProvider, CompositeFormat, TArg0, TArg1)

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

Format<TArg0>(IFormatProvider, CompositeFormat, TArg0)

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

注釈

この API の詳細については、「String.Formatの補足 API 解説 参照してください。

Format(IFormatProvider, String, Object[])

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の書式指定項目を、指定した配列内の対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

public:
 static System::String ^ Format(IFormatProvider ^ provider, System::String ^ format, ... cli::array <System::Object ^> ^ args);
public static string Format (IFormatProvider provider, string format, params object[] args);
public static string Format (IFormatProvider? provider, string format, params object?[] args);
static member Format : IFormatProvider * string * obj[] -> string
Public Shared Function Format (provider As IFormatProvider, format As String, ParamArray args As Object()) As String

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

args
Object[]

書式設定する 0 個以上のオブジェクトを含むオブジェクト配列。

戻り値

書式設定項目が、args内の対応するオブジェクトの文字列形式に置き換えられた format のコピー。

例外

format または argsnull

format が無効です。

-又は-

書式指定項目のインデックスが 0 未満であるか、args 配列の長さ以上です。

注釈

大事な

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、4 つ以上の式を文字列表現に変換し、それらの表現を文字列に埋め込みます。 変換を実行する場合、メソッドはカルチャに依存する書式設定またはカスタム フォーマッタを使用します。 このメソッドは、ToString(IFormatProvider) メソッドを呼び出すか、オブジェクトの対応する書式指定項目に書式指定文字列が含まれている場合は、ToString(String,IFormatProvider) メソッドを呼び出すことによって、各 Object 引数を文字列形式に変換します。 これらのメソッドが存在しない場合は、ToString メソッド オブジェクトのパラメーターなしのメソッドを呼び出します。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、カルチャに依存またはカスタムの書式設定を提供するオブジェクトと、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用して、メソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

例: カルチャに依存する書式設定

この例では、Format(IFormatProvider, String, Object[]) メソッドを使用して、いくつかの異なるカルチャを使用して、日付と時刻の値と数値の文字列形式を表示します。

string[] cultureNames = { "en-US", "fr-FR", "de-DE", "es-ES" };

DateTime dateToDisplay = new DateTime(2009, 9, 1, 18, 32, 0);
double value = 9164.32;

Console.WriteLine("Culture     Date                                Value\n");
foreach (string cultureName in cultureNames)
{
   System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(cultureName);
   string output = String.Format(culture, "{0,-11} {1,-35:D} {2:N}", 
                                 culture.Name, dateToDisplay, value);
   Console.WriteLine(output);
}    
// The example displays the following output:
//    Culture     Date                                Value
//    
//    en-US       Tuesday, September 01, 2009         9,164.32
//    fr-FR       mardi 1 septembre 2009              9 164,32
//    de-DE       Dienstag, 1. September 2009         9.164,32
//    es-ES       martes, 01 de septiembre de 2009    9.164,32
open System
open System.Globalization

let cultureNames = [| "en-US"; "fr-FR"; "de-DE"; "es-ES" |]

let dateToDisplay = DateTime(2009, 9, 1, 18, 32, 0)
let value = 9164.32

printfn "Culture     Date                                Value\n"
for cultureName in cultureNames do
    let culture = CultureInfo cultureName
    String.Format(culture, "{0,-11} {1,-35:D} {2:N}", culture.Name, dateToDisplay, value)
    |> printfn "%s"
// The example displays the following output:
//    Culture     Date                                Value
//    
//    en-US       Tuesday, September 01, 2009         9,164.32
//    fr-FR       mardi 1 septembre 2009              9 164,32
//    de-DE       Dienstag, 1. September 2009         9.164,32
//    es-ES       martes, 01 de septiembre de 2009    9.164,32
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim cultureNames() As String = { "en-US", "fr-FR", "de-DE", "es-ES" }
      
      Dim dateToDisplay As Date = #9/1/2009 6:32PM#
      Dim value As Double = 9164.32

      Console.WriteLine("Culture     Date                                Value")
      Console.WriteLine()      
      For Each cultureName As String In cultureNames
         Dim culture As New CultureInfo(cultureName)
         Dim output As String = String.Format(culture, "{0,-11} {1,-35:D} {2:N}", _
                                              culture.Name, dateToDisplay, value)
         Console.WriteLine(output)
      Next    
   End Sub
End Module
' The example displays the following output:
'       Culture     Date                                Value
'       
'       en-US       Tuesday, September 01, 2009         9,164.32
'       fr-FR       mardi 1 septembre 2009              9 164,32
'       de-DE       Dienstag, 1. September 2009         9.164,32
'       es-ES       martes, 01 de septiembre de 2009    9.164,32

こちらもご覧ください

  • DateTimeFormatInfo
  • ICustomFormatter
  • IFormatProvider
  • NumberFormatInfo
  • .NET の 書式設定の種類
  • 複合書式 を する
  • 標準の日時書式指定文字列 を する
  • カスタム日時書式指定文字列 を する
  • 標準の数値書式指定文字列 を する
  • カスタム数値書式指定文字列 を する
  • 標準の TimeSpan 書式指定文字列 を する
  • カスタム TimeSpan 書式指定文字列 を する
  • 列挙形式の文字列

適用対象

Format(IFormatProvider, String, Object, Object, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の書式指定項目を、指定した 3 つのオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

public:
 static System::String ^ Format(IFormatProvider ^ provider, System::String ^ format, System::Object ^ arg0, System::Object ^ arg1, System::Object ^ arg2);
public static string Format (IFormatProvider provider, string format, object arg0, object arg1, object arg2);
public static string Format (IFormatProvider? provider, string format, object? arg0, object? arg1, object? arg2);
static member Format : IFormatProvider * string * obj * obj * obj -> string
Public Shared Function Format (provider As IFormatProvider, format As String, arg0 As Object, arg1 As Object, arg2 As Object) As String

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
Object

書式設定する最初のオブジェクト。

arg1
Object

書式設定する 2 番目のオブジェクト。

arg2
Object

書式設定する 3 番目のオブジェクト。

戻り値

書式設定項目が arg0arg1、および arg2の文字列形式に置き換えられた format のコピー。

例外

formatnullです。

format が無効です。

-又は-

書式指定項目のインデックスが 0 より小さいか、2 より大きい。

注釈

大事な

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドでは、複合書式設定機能 を使用して、3 つの式を文字列表現に変換し、それらの表現を文字列に埋め込みます。 変換を実行する場合、メソッドはカルチャに依存する書式設定またはカスタム フォーマッタを使用します。 このメソッドは、ToString(IFormatProvider) メソッドを呼び出すか、オブジェクトの対応する書式指定項目に書式指定文字列が含まれている場合は、ToString(String,IFormatProvider) メソッドを呼び出すことによって、各 Object 引数を文字列形式に変換します。 これらのメソッドが存在しない場合は、ToString メソッド オブジェクトのパラメーターなしのメソッドを呼び出します。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、カルチャに依存またはカスタムの書式設定を提供するオブジェクトと、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用して、メソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

適用対象

Format(String, Object, Object, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の書式指定項目を、指定した 3 つのオブジェクトの文字列形式に置き換えます。

public:
 static System::String ^ Format(System::String ^ format, System::Object ^ arg0, System::Object ^ arg1, System::Object ^ arg2);
public static string Format (string format, object arg0, object arg1, object arg2);
public static string Format (string format, object? arg0, object? arg1, object? arg2);
static member Format : string * obj * obj * obj -> string
Public Shared Function Format (format As String, arg0 As Object, arg1 As Object, arg2 As Object) As String

パラメーター

arg0
Object

書式設定する最初のオブジェクト。

arg1
Object

書式設定する 2 番目のオブジェクト。

arg2
Object

書式設定する 3 番目のオブジェクト。

戻り値

書式設定項目が arg0arg1、および arg2の文字列形式に置き換えられた format のコピー。

例外

formatnullです。

format が無効です。

-又は-

書式指定項目のインデックスが 0 より小さいか、2 より大きい。

注釈

大事な

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、3 つの式の値を文字列表現に変換し、それらの表現を文字列に埋め込みます。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用してメソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

例: 3 つの引数の書式を設定する

この例では、Format(String, Object, Object, Object) メソッドを使用して、2 つの整数値を持つブール And 演算の結果を示す文字列を作成します。 書式指定文字列には 6 つの書式指定項目が含まれますが、各アイテムは 2 つの異なる方法で書式設定されるため、メソッドのパラメーター リストには 3 つの項目しか含めないため注意してください。

using namespace System;

void main()
{
   String^ formatString = "    {0,10} ({0,8:X8})\n" + 
                           "And {1,10} ({1,8:X8})\n" + 
                           "  = {2,10} ({2,8:X8})";
   int value1 = 16932;
   int value2 = 15421;
   String^ result = String::Format(formatString, 
                                   value1, value2, value1 & value2);
   Console::WriteLine(result);
}
// The example displays the following output:
//                16932 (00004224)
//       And      15421 (00003C3D)
//         =         36 (00000024)
string formatString = "    {0,10} ({0,8:X8})\n" + 
                      "And {1,10} ({1,8:X8})\n" + 
                      "  = {2,10} ({2,8:X8})";
int value1 = 16932;
int value2 = 15421;
string result = String.Format(formatString, 
                              value1, value2, value1 & value2);
Console.WriteLine(result);
// The example displays the following output:
//                16932 (00004224)
//       And      15421 (00003C3D)
//         =         36 (00000024)
open System

let formatString = 
    "    {0,10} ({0,8:X8})\nAnd {1,10} ({1,8:X8})\n  = {2,10} ({2,8:X8})"

let value1 = 16932
let value2 = 15421
String.Format(formatString, value1, value2, value1 &&& value2)
|> printfn "%s"
// The example displays the following output:
//                16932 (00004224)
//       And      15421 (00003C3D)
//         =         36 (00000024)
Public Module Example
   Public Sub Main()
      Dim formatString As String = "    {0,10} ({0,8:X8})" + vbCrLf +  _
                                   "And {1,10} ({1,8:X8})" + vbCrLf + _
                                   "  = {2,10} ({2,8:X8})"
      Dim value1 As Integer = 16932
      Dim value2 As Integer = 15421
      Dim result As String = String.Format(formatString, _
                                           value1, value2, value1 And value2)
      Console.WriteLine(result)                          
   End Sub
End Module
' The example displays the following output:
'                16932 (00004224)
'       And      15421 (00003C3D)
'         =         36 (00000024)

こちらもご覧ください

  • .NET の 書式設定の種類
  • 複合書式 を する

適用対象

Format(IFormatProvider, String, Object, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の書式指定項目を、指定した 2 つのオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

public:
 static System::String ^ Format(IFormatProvider ^ provider, System::String ^ format, System::Object ^ arg0, System::Object ^ arg1);
public static string Format (IFormatProvider provider, string format, object arg0, object arg1);
public static string Format (IFormatProvider? provider, string format, object? arg0, object? arg1);
static member Format : IFormatProvider * string * obj * obj -> string
Public Shared Function Format (provider As IFormatProvider, format As String, arg0 As Object, arg1 As Object) As String

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
Object

書式設定する最初のオブジェクト。

arg1
Object

書式設定する 2 番目のオブジェクト。

戻り値

書式項目が arg0 および arg1の文字列表現に置き換えられる format のコピー。

例外

formatnullです。

format が無効です。

-又は-

書式項目のインデックスが 0 または 1 ではありません。

注釈

大事な

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、2 つの式を文字列表現に変換し、それらの表現を文字列に埋め込みます。 変換を実行する場合、メソッドはカルチャに依存する書式設定またはカスタム フォーマッタを使用します。 このメソッドは、ToString(IFormatProvider) メソッドを呼び出すか、オブジェクトの対応する書式指定項目に書式指定文字列が含まれている場合は、ToString(String,IFormatProvider) メソッドを呼び出すことによって、各 Object 引数を文字列形式に変換します。 これらのメソッドが存在しない場合は、ToString メソッド オブジェクトのパラメーターなしのメソッドを呼び出します。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、カルチャに依存またはカスタムの書式設定を提供するオブジェクトと、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用して、メソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

適用対象

Format(String, Object, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の書式指定項目を、指定した 2 つのオブジェクトの文字列形式に置き換えます。

public:
 static System::String ^ Format(System::String ^ format, System::Object ^ arg0, System::Object ^ arg1);
public static string Format (string format, object arg0, object arg1);
public static string Format (string format, object? arg0, object? arg1);
static member Format : string * obj * obj -> string
Public Shared Function Format (format As String, arg0 As Object, arg1 As Object) As String

パラメーター

arg0
Object

書式設定する最初のオブジェクト。

arg1
Object

書式設定する 2 番目のオブジェクト。

戻り値

書式項目が arg0 および arg1の文字列表現に置き換えられる format のコピー。

例外

formatnullです。

format が無効です。

-又は-

書式項目のインデックスが 0 または 1 ではありません。

注釈

大事な

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、2 つの式の値を文字列表現に変換し、それらの表現を文字列に埋め込みます。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用してメソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

例: 2 つの引数を書式設定する

この例では、Format(String, Object, Object) メソッドを使用して、ジェネリック Dictionary<TKey,TValue> オブジェクトに格納されている時間と温度のデータを表示します。 書式指定文字列には 3 つの書式項目がありますが、書式設定するオブジェクトは 2 つだけであることに注意してください。 これは、リスト内の最初のオブジェクト (日付と時刻の値) が 2 つの書式項目によって使用されるためです。最初の書式項目には時刻が表示され、2 番目のオブジェクトには日付が表示されます。

using namespace System;
using namespace System::Collections::Generic;

void main()
{
   Dictionary<DateTime, Double>^ temperatureInfo = gcnew Dictionary<DateTime, Double>(); 
   temperatureInfo->Add(DateTime(2010, 6, 1, 14, 0, 0), 87.46);
   temperatureInfo->Add(DateTime(2010, 12, 1, 10, 0, 0), 36.81);
      
   Console::WriteLine("Temperature Information:\n");
   String^ output;   
   for each (KeyValuePair<DateTime, Double>^ item in temperatureInfo)
   {
      output = String::Format("Temperature at {0,8:t} on {0,9:d}: {1,5:N1}�F", 
                              item->Key, item->Value);
      Console::WriteLine(output);
   }
}
// The example displays the following output:
//       Temperature Information:
//       
//       Temperature at  2:00 PM on  6/1/2010:  87.5�F
//       Temperature at 10:00 AM on 12/1/2010:  36.8�F
Dictionary<DateTime, Double> temperatureInfo = new Dictionary<DateTime, Double>(); 
temperatureInfo.Add(new DateTime(2010, 6, 1, 14, 0, 0), 87.46);
temperatureInfo.Add(new DateTime(2010, 12, 1, 10, 0, 0), 36.81);

Console.WriteLine("Temperature Information:\n");
string output;   
foreach (var item in temperatureInfo)
{
   output = String.Format("Temperature at {0,8:t} on {0,9:d}: {1,5:N1}°F", 
                          item.Key, item.Value);
   Console.WriteLine(output);
}
// The example displays output like the following:
//       Temperature Information:
//       
//       Temperature at  2:00 PM on  6/1/2010:  87.5°F
//       Temperature at 10:00 AM on 12/1/2010:  36.8°F
open System
open System.Collections.Generic

let temperatureInfo = Dictionary<DateTime, float>() 
temperatureInfo.Add(DateTime(2010, 6, 1, 14, 0, 0), 87.46)
temperatureInfo.Add(DateTime(2010, 12, 1, 10, 0, 0), 36.81)

printfn $"Temperature Information:\n"
for item in temperatureInfo do
   String.Format("Temperature at {0,8:t} on {0,9:d}: {1,5:N1}°F", item.Key, item.Value)
   |> printfn "%s"
// The example displays output like the following:
//       Temperature Information:
//       
//       Temperature at  2:00 PM on  6/1/2010:  87.5°F
//       Temperature at 10:00 AM on 12/1/2010:  36.8°F
Imports System.Collections.Generic

Module Example
   Public Sub Main()
      Dim temperatureInfo As New Dictionary(Of Date, Double) 
      temperatureInfo.Add(#6/1/2010 2:00PM#, 87.46)
      temperatureInfo.Add(#12/1/2010 10:00AM#, 36.81)
      
      Console.WriteLine("Temperature Information:")
      Console.WriteLine()
      Dim output As String   
      For Each item In temperatureInfo
         output = String.Format("Temperature at {0,8:t} on {0,9:d}: {1,5:N1}°F", _
                                item.Key, item.Value)
         Console.WriteLine(output)
      Next
   End Sub
End Module
' The example displays the following output:
'       Temperature Information:
'       
'       Temperature at  2:00 PM on  6/1/2010:  87.5°F
'       Temperature at 10:00 AM on 12/1/2010:  36.8°F

こちらもご覧ください

  • .NET の 書式設定の種類
  • 複合書式 を する
  • 標準の日時書式指定文字列 を する
  • カスタム日時書式指定文字列 を する
  • 標準の数値書式指定文字列 を する
  • カスタム数値書式指定文字列 を する
  • 標準の TimeSpan 書式指定文字列 を する
  • カスタム TimeSpan 書式指定文字列 を する
  • 列挙形式の文字列

適用対象

Format(IFormatProvider, CompositeFormat, ReadOnlySpan<Object>)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

public:
 static System::String ^ Format(IFormatProvider ^ provider, System::Text::CompositeFormat ^ format, ReadOnlySpan<System::Object ^> args);
public static string Format (IFormatProvider? provider, System.Text.CompositeFormat format, ReadOnlySpan<object?> args);
public static string Format (IFormatProvider? provider, System.Text.CompositeFormat format, scoped ReadOnlySpan<object?> args);
static member Format : IFormatProvider * System.Text.CompositeFormat * ReadOnlySpan<obj> -> string
Public Shared Function Format (provider As IFormatProvider, format As CompositeFormat, args As ReadOnlySpan(Of Object)) As String

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

args
ReadOnlySpan<Object>

書式設定するオブジェクトのスパン。

戻り値

書式設定された文字列。

例外

formatnullです。

書式指定項目のインデックスは、指定された引数の数以上です。

適用対象

Format(IFormatProvider, String, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

指定した文字列内の書式指定項目を、対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

public:
 static System::String ^ Format(IFormatProvider ^ provider, System::String ^ format, System::Object ^ arg0);
public static string Format (IFormatProvider provider, string format, object arg0);
public static string Format (IFormatProvider? provider, string format, object? arg0);
static member Format : IFormatProvider * string * obj -> string
Public Shared Function Format (provider As IFormatProvider, format As String, arg0 As Object) As String

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
Object

書式設定するオブジェクト。

戻り値

arg0の文字列表現で書式設定項目が置き換えられた format のコピー。

例外

formatnullです。

format が無効です。

-又は-

書式項目のインデックスが 0 ではありません。

注釈

大事な

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、式の値を文字列形式に変換し、その表現を文字列に埋め込みます。 変換を実行する場合、メソッドはカルチャに依存する書式設定またはカスタム フォーマッタを使用します。 このメソッドは、ToString(IFormatProvider) メソッドを呼び出すか、オブジェクトの対応する書式指定項目に書式指定文字列が含まれている場合は、ToString(String,IFormatProvider) メソッドを呼び出すことによって、arg0 を文字列形式に変換します。 これらのメソッドが存在しない場合は、ToString メソッド オブジェクトのパラメーターなしのメソッドを呼び出します。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、カルチャに依存またはカスタムの書式設定を提供するオブジェクトと、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用して、メソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

適用対象

Format(IFormatProvider, String, ReadOnlySpan<Object>)

文字列内の書式指定項目を、指定されたスパン内の対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

public:
 static System::String ^ Format(IFormatProvider ^ provider, System::String ^ format, ReadOnlySpan<System::Object ^> args);
public static string Format (IFormatProvider? provider, string format, scoped ReadOnlySpan<object?> args);
static member Format : IFormatProvider * string * ReadOnlySpan<obj> -> string
Public Shared Function Format (provider As IFormatProvider, format As String, args As ReadOnlySpan(Of Object)) As String

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

args
ReadOnlySpan<Object>

書式設定する 0 個以上のオブジェクトを含むオブジェクト スパン。

戻り値

書式設定項目が、args内の対応するオブジェクトの文字列形式に置き換えられた format のコピー。

適用対象

Format(String, ReadOnlySpan<Object>)

指定した文字列内の書式指定項目を、指定したスパン内の対応するオブジェクトの文字列形式に置き換えます。

public:
 static System::String ^ Format(System::String ^ format, ReadOnlySpan<System::Object ^> args);
public static string Format (string format, scoped ReadOnlySpan<object?> args);
static member Format : string * ReadOnlySpan<obj> -> string
Public Shared Function Format (format As String, args As ReadOnlySpan(Of Object)) As String

パラメーター

args
ReadOnlySpan<Object>

書式設定する 0 個以上のオブジェクトを含むオブジェクト スパン。

戻り値

書式設定項目が、args内の対応するオブジェクトの文字列形式に置き換えられた format のコピー。

適用対象

Format(String, Object[])

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

指定した文字列内の書式指定項目を、指定した配列内の対応するオブジェクトの文字列形式に置き換えます。

public:
 static System::String ^ Format(System::String ^ format, ... cli::array <System::Object ^> ^ args);
public static string Format (string format, params object[] args);
public static string Format (string format, params object?[] args);
static member Format : string * obj[] -> string
Public Shared Function Format (format As String, ParamArray args As Object()) As String

パラメーター

args
Object[]

書式設定する 0 個以上のオブジェクトを含むオブジェクト配列。

戻り値

書式設定項目が、args内の対応するオブジェクトの文字列形式に置き換えられた format のコピー。

例外

format または argsnull

format が無効です。

-又は-

書式指定項目のインデックスが 0 未満であるか、args 配列の長さ以上です。

注釈

大事な

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、4 つ以上の式の値を文字列表現に変換し、それらの表現を文字列に埋め込みます。 args パラメーターは System.ParamArrayAttribute 属性でマークされているため、オブジェクトを個々の引数または Object 配列としてメソッドに渡すことができます。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用してメソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

例: 3 つ以上の引数を書式設定する

この例では、特定の日付の高温および低温のデータを含む文字列を作成します。 複合書式指定文字列には、C# の例では 5 つの書式項目があり、Visual Basic の例では 6 つの書式指定項目があります。 2 つの書式指定項目は、対応する値の文字列形式の幅を定義し、最初の書式指定項目には標準の日付と時刻の書式指定文字列も含まれています。

using namespace System;

void main()
{
   DateTime date1 = DateTime(2009, 7, 1);
   TimeSpan hiTime = TimeSpan(14, 17, 32);
   Decimal hiTemp = (Decimal) 62.1; 
   TimeSpan loTime = TimeSpan(3, 16, 10);
   Decimal loTemp = (Decimal)54.8; 

   String^ result1 = String::Format("Temperature on {0:d}:\n{1,11}: {2} degrees (hi)\n{3,11}: {4} degrees (lo)", 
                                    date1, hiTime, hiTemp, loTime, loTemp);
   Console::WriteLine(result1);
   Console::WriteLine();
           
   String^ result2 = String::Format("Temperature on {0:d}:\n{1,11}: {2} degrees (hi)\n{3,11}: {4} degrees (lo)", 
                                    gcnew array<Object^> { date1, hiTime, hiTemp, loTime, loTemp });
   Console::WriteLine(result2);
}
// The example displays the following output:
//       Temperature on 7/1/2009:
//          14:17:32: 62.1 degrees (hi)
//          03:16:10: 54.8 degrees (lo)
//       Temperature on 7/1/2009:
//          14:17:32: 62.1 degrees (hi)
//          03:16:10: 54.8 degrees (lo)
DateTime date1 = new DateTime(2009, 7, 1);
TimeSpan hiTime = new TimeSpan(14, 17, 32);
decimal hiTemp = 62.1m; 
TimeSpan loTime = new TimeSpan(3, 16, 10);
decimal loTemp = 54.8m; 

string result1 = String.Format("Temperature on {0:d}:\n{1,11}: {2} degrees (hi)\n{3,11}: {4} degrees (lo)", 
                               date1, hiTime, hiTemp, loTime, loTemp);
Console.WriteLine(result1);
Console.WriteLine();
     
string result2 = String.Format("Temperature on {0:d}:\n{1,11}: {2} degrees (hi)\n{3,11}: {4} degrees (lo)", 
                               new object[] { date1, hiTime, hiTemp, loTime, loTemp });
Console.WriteLine(result2);
// The example displays output like the following:
//       Temperature on 7/1/2009:
//          14:17:32: 62.1 degrees (hi)
//          03:16:10: 54.8 degrees (lo)
//       Temperature on 7/1/2009:
//          14:17:32: 62.1 degrees (hi)
//          03:16:10: 54.8 degrees (lo)
let date1 = DateTime(2009, 7, 1)
let hiTime = TimeSpan(14, 17, 32)
let hiTemp = 62.1m 
let loTime = TimeSpan(3, 16, 10)
let loTemp = 54.8m 

String.Format("Temperature on {0:d}:\n{1,11}: {2} degrees (hi)\n{3,11}: {4} degrees (lo)", date1, hiTime, hiTemp, loTime, loTemp)
|> printfn "%s\n"
      
String.Format("Temperature on {0:d}:\n{1,11}: {2} degrees (hi)\n{3,11}: {4} degrees (lo)", [| date1 :> obj; hiTime; hiTemp; loTime; loTemp |])
|> printfn "%s"
// The example displays output like the following:
//       Temperature on 7/1/2009:
//          14:17:32: 62.1 degrees (hi)
//          03:16:10: 54.8 degrees (lo)
//       Temperature on 7/1/2009:
//          14:17:32: 62.1 degrees (hi)
//          03:16:10: 54.8 degrees (lo)
Module Example
   Public Sub Main()
      Dim date1 As Date = #7/1/2009#
      Dim hiTime As New TimeSpan(14, 17, 32)
      Dim hiTemp As Decimal = 62.1d 
      Dim loTime As New TimeSpan(3, 16, 10)
      Dim loTemp As Decimal = 54.8d 

      Dim result1 As String = String.Format("Temperature on {0:d}:{5}{1,11}: {2} degrees (hi){5}{3,11}: {4} degrees (lo)", _
                                           date1, hiTime, hiTemp, loTime, loTemp, vbCrLf)
      Console.WriteLine(result1)
      Console.WriteLine()
           
      Dim result2 As String = String.Format("Temperature on {0:d}:{5}{1,11}: {2} degrees (hi){5}{3,11}: {4} degrees (lo)", _
                                            New Object() { date1, hiTime, hiTemp, loTime, loTemp, vbCrLf })
      Console.WriteLine(result2)                                            
   End Sub
End Module
' The example displays the following output:
'       Temperature on 7/1/2009:
'          14:17:32: 62.1 degrees (hi)
'          03:16:10: 54.8 degrees (lo)
'
'       Temperature on 7/1/2009:
'          14:17:32: 62.1 degrees (hi)
'          03:16:10: 54.8 degrees (lo)

引数リストとしてではなく、配列として書式設定するオブジェクトを渡すこともできます。

using namespace System;

ref class CityInfo
{
public:
   CityInfo(String^ name, int population, Decimal area, int year)
   {
      this->Name = name;
      this->Population = population;
      this->Area = area;
      this->Year = year;
   }
   
   String^ Name; 
   int Population;
   Decimal Area;
   int Year;
};

ref class Example
{
public:
   static void ShowPopulationData(CityInfo^ city)
   {
      array<Object^>^ args = gcnew array<Object^> { city->Name, city->Year, city->Population, city->Area };
      String^ result = String::Format("{0} in {1}: Population {2:N0}, Area {3:N1} sq. feet", 
                                    args);
      Console::WriteLine(result); 
   }
};

void main()
{
   CityInfo^ nyc2010 = gcnew CityInfo("New York", 8175133, (Decimal) 302.64, 2010);
   Example::ShowPopulationData(nyc2010);
   CityInfo^ sea2010 = gcnew CityInfo("Seattle", 608660, (Decimal) 83.94, 2010);      
   Example::ShowPopulationData(sea2010); 
}
// The example displays the following output:
//       New York in 2010: Population 8,175,133, Area 302.6 sq. feet
//       Seattle in 2010: Population 608,660, Area 83.9 sq. feet
using System;

public class CityInfo
{
   public CityInfo(String name, int population, Decimal area, int year)
   {
      this.Name = name;
      this.Population = population;
      this.Area = area;
      this.Year = year;
   }
   
   public readonly String Name; 
   public readonly int Population;
   public readonly Decimal Area;
   public readonly int Year;
}

public class Example
{
   public static void Main()
   {
      CityInfo nyc2010 = new CityInfo("New York", 8175133, 302.64m, 2010);
      ShowPopulationData(nyc2010);
      CityInfo sea2010 = new CityInfo("Seattle", 608660, 83.94m, 2010);      
      ShowPopulationData(sea2010); 
   }

   private static void ShowPopulationData(CityInfo city)
   {
      object[] args = { city.Name, city.Year, city.Population, city.Area };
      String result = String.Format("{0} in {1}: Population {2:N0}, Area {3:N1} sq. feet", 
                                    args);
      Console.WriteLine(result); 
   }
}
// The example displays the following output:
//       New York in 2010: Population 8,175,133, Area 302.6 sq. feet
//       Seattle in 2010: Population 608,660, Area 83.9 sq. feet
open System

type CityInfo =
  { Name: string
    Population: int
    Area: Decimal
    Year: int }

let showPopulationData city =
    let args: obj[] = [| city.Name; city.Year; city.Population; city.Area |]
    String.Format("{0} in {1}: Population {2:N0}, Area {3:N1} sq. feet", args)
    |> printfn "%s"

{ Name = "New York"; Population = 8175133; Area = 302.64m; Year = 2010 }
|> showPopulationData

 
{ Name = "Seattle"; Population = 608660; Area = 83.94m; Year = 2010 }      
|> showPopulationData 

// The example displays the following output:
//       New York in 2010: Population 8,175,133, Area 302.6 sq. feet
//       Seattle in 2010: Population 608,660, Area 83.9 sq. feet
Public Class CityInfo
   Public Sub New(name As String, population As Integer, area As Decimal, year As Integer)
      Me.Name = name
      Me.Population = population
      Me.Area = area
      Me.Year = year
   End Sub
   
   Public ReadOnly Name As String
   Public ReadOnly Population As Integer
   Public ReadOnly Area As Decimal
   Public ReadOnly Year As Integer
End Class

Module Example
   Public Sub Main()
      Dim nyc2010 As New CityInfo("New York", 8175133, 302.64d, 2010)
      ShowPopulationData(nyc2010)
      Dim sea2010 As New CityInfo("Seattle", 608660, 83.94d, 2010)      
      ShowPopulationData(sea2010) 
   End Sub
   
   Private Sub ShowPopulationData(city As CityInfo)
      Dim args() As Object = { city.Name, city.Year, city.Population, city.Area }
      Dim result = String.Format("{0} in {1}: Population {2:N0}, Area {3:N1} sq. feet", args)
      Console.WriteLine(result) 
   End Sub
End Module
' The example displays the following output:
'       New York in 2010: Population 8,175,133, Area 302.6 sq. feet
'       Seattle in 2010: Population 608,660, Area 83.9 sq. feet

こちらもご覧ください

  • .NET の 書式設定の種類
  • 複合書式 を する
  • 標準の日時書式指定文字列 を する
  • カスタム日時書式指定文字列 を する
  • 標準の数値書式指定文字列 を する
  • カスタム数値書式指定文字列 を する
  • 標準の TimeSpan 書式指定文字列 を する
  • カスタム TimeSpan 書式指定文字列 を する
  • 列挙形式の文字列

適用対象

Format(String, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の 1 つ以上の書式指定項目を、指定したオブジェクトの文字列形式に置き換えます。

public:
 static System::String ^ Format(System::String ^ format, System::Object ^ arg0);
public static string Format (string format, object arg0);
public static string Format (string format, object? arg0);
static member Format : string * obj -> string
Public Shared Function Format (format As String, arg0 As Object) As String

パラメーター

arg0
Object

書式設定するオブジェクト。

戻り値

書式設定項目が arg0の文字列形式に置き換えられる format のコピー。

例外

formatnullです。

format の書式項目が無効です。

-又は-

書式項目のインデックスが 0 ではありません。

注釈

大事な

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、式の値を文字列形式に変換し、その表現を文字列に埋め込みます。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用してメソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

例: 1 つの引数の書式設定

次の例では、Format(String, Object) メソッドを使用して、文字列の途中に個人の年齢を埋め込みます。

using namespace System;

void main()
{
   DateTime birthdate = DateTime(1993, 7, 28);
   array<DateTime>^ dates = gcnew array<DateTime> { DateTime(1993, 8, 16), 
                                                    DateTime(1994, 7, 28), 
                                                    DateTime(2000, 10, 16), 
                                                    DateTime(2003, 7, 27), 
                                                    DateTime(2007, 5, 27) };

   for each (DateTime dateValue in dates)
   {
      TimeSpan interval = dateValue - birthdate;
      // Get the approximate number of years, without accounting for leap years.
      int years = ((int)interval.TotalDays) / 365;
      // See if adding the number of years exceeds dateValue.
      String^ output;
      if (birthdate.AddYears(years) <= dateValue) {
         output = String::Format("You are now {0} years old.", years);
         Console::WriteLine(output);
      }   
      else {
         output = String::Format("You are now {0} years old.", years - 1);
         Console::WriteLine(output);
      }      
   }
}
// The example displays the following output:
//       You are now 0 years old.
//       You are now 1 years old.
//       You are now 7 years old.
//       You are now 9 years old.
//       You are now 13 years old.
DateTime birthdate = new DateTime(1993, 7, 28);
DateTime[] dates = { new DateTime(1993, 8, 16), 
                     new DateTime(1994, 7, 28), 
                     new DateTime(2000, 10, 16), 
                     new DateTime(2003, 7, 27), 
                     new DateTime(2007, 5, 27) };

foreach (DateTime dateValue in dates)
{
   TimeSpan interval = dateValue - birthdate;
   // Get the approximate number of years, without accounting for leap years.
   int years = ((int) interval.TotalDays) / 365;
   // See if adding the number of years exceeds dateValue.
   string output;
   if (birthdate.AddYears(years) <= dateValue) {
      output = String.Format("You are now {0} years old.", years);
      Console.WriteLine(output);
   }   
   else {
      output = String.Format("You are now {0} years old.", years - 1);
      Console.WriteLine(output);
   }      
}
// The example displays the following output:
//       You are now 0 years old.
//       You are now 1 years old.
//       You are now 7 years old.
//       You are now 9 years old.
//       You are now 13 years old.
let birthdate = DateTime(1993, 7, 28)
let dates = 
    [ DateTime(1993, 8, 16) 
      DateTime(1994, 7, 28)
      DateTime(2000, 10, 16)
      DateTime(2003, 7, 27)
      DateTime(2007, 5, 27) ]

for dateValue in dates do
    let interval = dateValue - birthdate
    // Get the approximate number of years, without accounting for leap years.
    let years = (int interval.TotalDays) / 365
    // See if adding the number of years exceeds dateValue.
    if birthdate.AddYears years <= dateValue then
        String.Format("You are now {0} years old.", years)
    else
        String.Format("You are now {0} years old.", years - 1)
    |> printfn "%s"
// The example displays the following output:
//       You are now 0 years old.
//       You are now 1 years old.
//       You are now 7 years old.
//       You are now 9 years old.
//       You are now 13 years old.
Module Example
   Public Sub Main()
      Dim birthdate As Date = #7/28/1993#
      Dim dates() As Date = { #9/16/1993#, #7/28/1994#, #10/16/2000#, _
                              #7/27/2003#, #5/27/2007# }
      For Each dateValue As Date In dates
         Dim interval As TimeSpan = dateValue - birthdate
         ' Get the approximate number of years, without accounting for leap years.
         Dim years As Integer = CInt(interval.TotalDays) \ 365
         ' See if adding the number of years exceeds dateValue.
         Dim output As String
         If birthdate.AddYears(years) <= dateValue Then
            output = String.Format("You are now {0} years old.", years)
            Console.WriteLine(output)
         Else
            output = String.Format("You are now {0} years old.", years - 1)
            Console.WriteLine(output)   
         End If
      Next
   End Sub
End Module
' The example displays the following output:
'       You are now 0 years old.
'       You are now 1 years old.
'       You are now 7 years old.
'       You are now 9 years old.
'       You are now 13 years old.

こちらもご覧ください

  • .NET の 書式設定の種類
  • 複合書式 を する
  • 標準の日時書式指定文字列 を する
  • カスタム日時書式指定文字列 を する
  • 標準の数値書式指定文字列 を する
  • カスタム数値書式指定文字列 を する
  • 標準の TimeSpan 書式指定文字列 を する
  • カスタム TimeSpan 書式指定文字列 を する
  • 列挙形式の文字列

適用対象

Format(IFormatProvider, CompositeFormat, Object[])

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

public:
 static System::String ^ Format(IFormatProvider ^ provider, System::Text::CompositeFormat ^ format, ... cli::array <System::Object ^> ^ args);
public static string Format (IFormatProvider? provider, System.Text.CompositeFormat format, params object?[] args);
static member Format : IFormatProvider * System.Text.CompositeFormat * obj[] -> string
Public Shared Function Format (provider As IFormatProvider, format As CompositeFormat, ParamArray args As Object()) As String

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

args
Object[]

書式設定するオブジェクトの配列。

戻り値

書式設定された文字列。

例外

format または argsnull

書式指定項目のインデックスは、指定された引数の数以上です。

適用対象

Format<TArg0,TArg1,TArg2>(IFormatProvider, CompositeFormat, TArg0, TArg1, TArg2)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

public:
generic <typename TArg0, typename TArg1, typename TArg2>
 static System::String ^ Format(IFormatProvider ^ provider, System::Text::CompositeFormat ^ format, TArg0 arg0, TArg1 arg1, TArg2 arg2);
public static string Format<TArg0,TArg1,TArg2> (IFormatProvider? provider, System.Text.CompositeFormat format, TArg0 arg0, TArg1 arg1, TArg2 arg2);
static member Format : IFormatProvider * System.Text.CompositeFormat * 'TArg0 * 'TArg1 * 'TArg2 -> string
Public Shared Function Format(Of TArg0, TArg1, TArg2) (provider As IFormatProvider, format As CompositeFormat, arg0 As TArg0, arg1 As TArg1, arg2 As TArg2) As String

型パラメーター

TArg0

書式設定する最初のオブジェクトの型。

TArg1

書式設定する 2 番目のオブジェクトの型。

TArg2

書式設定する 3 番目のオブジェクトの型。

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
TArg0

書式設定する最初のオブジェクト。

arg1
TArg1

書式設定する 2 番目のオブジェクト。

arg2
TArg2

書式設定する 3 番目のオブジェクト。

戻り値

書式設定された文字列。

例外

formatnullです。

書式指定項目のインデックスは、指定された引数の数以上です。

適用対象

Format<TArg0,TArg1>(IFormatProvider, CompositeFormat, TArg0, TArg1)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

public:
generic <typename TArg0, typename TArg1>
 static System::String ^ Format(IFormatProvider ^ provider, System::Text::CompositeFormat ^ format, TArg0 arg0, TArg1 arg1);
public static string Format<TArg0,TArg1> (IFormatProvider? provider, System.Text.CompositeFormat format, TArg0 arg0, TArg1 arg1);
static member Format : IFormatProvider * System.Text.CompositeFormat * 'TArg0 * 'TArg1 -> string
Public Shared Function Format(Of TArg0, TArg1) (provider As IFormatProvider, format As CompositeFormat, arg0 As TArg0, arg1 As TArg1) As String

型パラメーター

TArg0

書式設定する最初のオブジェクトの型。

TArg1

書式設定する 2 番目のオブジェクトの型。

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
TArg0

書式設定する最初のオブジェクト。

arg1
TArg1

書式設定する 2 番目のオブジェクト。

戻り値

書式設定された文字列。

例外

formatnullです。

書式指定項目のインデックスは、指定された引数の数以上です。

適用対象

Format<TArg0>(IFormatProvider, CompositeFormat, TArg0)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

public:
generic <typename TArg0>
 static System::String ^ Format(IFormatProvider ^ provider, System::Text::CompositeFormat ^ format, TArg0 arg0);
public static string Format<TArg0> (IFormatProvider? provider, System.Text.CompositeFormat format, TArg0 arg0);
static member Format : IFormatProvider * System.Text.CompositeFormat * 'TArg0 -> string
Public Shared Function Format(Of TArg0) (provider As IFormatProvider, format As CompositeFormat, arg0 As TArg0) As String

型パラメーター

TArg0

書式設定する最初のオブジェクトの型。

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
TArg0

書式設定する最初のオブジェクト。

戻り値

書式設定された文字列。

例外

formatnullです。

書式指定項目のインデックスは、指定された引数の数以上です。

適用対象