IFormattable.ToString(String, IFormatProvider) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 형식을 사용하여 현재 인스턴스 값의 형식을 지정합니다.
public:
System::String ^ ToString(System::String ^ format, IFormatProvider ^ formatProvider);
public string ToString (string format, IFormatProvider formatProvider);
public string ToString (string? format, IFormatProvider? formatProvider);
abstract member ToString : string * IFormatProvider -> string
Public Function ToString (format As String, formatProvider As IFormatProvider) As String
매개 변수
- format
- String
사용할 형식입니다.
또는
IFormattable 구현의 형식에 대해 정의된 기본 형식을 사용하려는 경우 null 참조(Visual Basic의 경우 Nothing
)입니다.
- formatProvider
- IFormatProvider
값의 형식을 지정하는 데 사용할 공급자입니다.
또는
운영 체제의 현재 로캘 설정에서 숫자 형식 정보를 가져오려는 경우 null 참조(Visual Basic의 경우 Nothing
)입니다.
반환
지정된 형식의 현재 인스턴스 값입니다.
예제
다음 예제는 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));
}
}
}
open System
open System.Globalization
type Temperature(temperature: decimal) =
do
if temperature < -273.15M then
raise (ArgumentOutOfRangeException $"{temperature} is less than absolute zero.")
member _.Celsius =
temperature
member _.Fahrenheit =
temperature * 9M / 5M + 32M
member _.Kelvin =
temperature + 273.15m
override this.ToString() =
this.ToString("G", CultureInfo.CurrentCulture)
member this.ToString(format) =
this.ToString(format, CultureInfo.CurrentCulture)
member this.ToString(format, provider: IFormatProvider) =
let format =
if String.IsNullOrEmpty format then "G"
else format
let provider =
if isNull provider then
CultureInfo.CurrentCulture :> IFormatProvider
else provider
match format.ToUpperInvariant() with
| "G" | "C" ->
temperature.ToString("F2", provider) + " °C"
| "F" ->
this.Fahrenheit.ToString("F2", provider) + " °F"
| "K" ->
this.Kelvin.ToString("F2", provider) + " K"
| _ ->
raise (FormatException $"The {format} format string is not supported.")
interface IFormattable with
member this.ToString(format, provider) = this.ToString(format, provider)
Imports System.Globalization
Public Class Temperature : Implements IFormattable
Private temp As Decimal
Public Sub New(temperature As Decimal)
If temperature < -273.15 Then _
Throw New ArgumentOutOfRangeException(String.Format("{0} is less than absolute zero.", _
temperature))
Me.temp = temperature
End Sub
Public ReadOnly Property Celsius As Decimal
Get
Return temp
End Get
End Property
Public ReadOnly Property Fahrenheit As Decimal
Get
Return temp * 9 / 5 + 32
End Get
End Property
Public ReadOnly Property Kelvin As Decimal
Get
Return temp + 273.15d
End Get
End Property
Public Overrides Function ToString() As String
Return Me.ToString("G", CultureInfo.CurrentCulture)
End Function
Public Overloads Function ToString(fmt As String) As String
Return Me.ToString(fmt, CultureInfo.CurrentCulture)
End Function
Public Overloads Function ToString(fmt As String, provider As IFormatProvider) _
As String _
Implements IFormattable.ToString
If String.IsNullOrEmpty(fmt) Then fmt = "G"
If provider Is Nothing Then provider = CultureInfo.CurrentCulture
Select Case fmt.ToUpperInvariant()
Case "G", "C"
Return temp.ToString("F2", provider) + " °C"
Case "F"
Return Fahrenheit.ToString("F2", provider) + " °F"
Case "K"
Return Kelvin.ToString("F2", provider) + " K"
Case Else
Throw New FormatException(String.Format("The {0} format string is not supported.", fmt))
End Select
End Function
End Class
설명
ToString 메서드 값을 여러 가지 방법으로 표현할 수 있는 문자열 표현으로 변환 합니다. 정확한 형식은 특정 기호 또는 특정 문화권, 직업 또는 산업에서 정의한 지정된 된 순서에 따라 달라 집니다. 직접 메서드를 호출할 수 있습니다. 자동으로 라고도 합니다 Convert.ToString(Object) 및 Convert.ToString(Object, IFormatProvider) 메서드 및 복합 형식 지정을 사용 하는 방법으로 기능.NET framework에서 같은 String.Format(String, Object[]), Console.WriteLine(String, Object[]), 및 StringBuilder.AppendFormat(String, Object[]). (자세한 내용은 복합 서식 지정을 참조하세요.)
형식 메서드를 호출 하는 복합을 ToString 형식 문자열의 각 서식 항목에 한 번씩 메서드. 메서드에 전달 된 매개 변수를 다음과 같이 형식 항목의 콘텐츠 및 호출 되는 특정 형식 지정 방법을 따라:
형식 항목 형식 문자열을 포함 하지 않습니다 (서식 항목은 경우에 예를 들어
{0}
)에 전달 됩니다null
값으로는 System.String 매개 변수.형식 항목에는 서식 문자열을 포함 하는 경우 (예를 들어
{0:G}
), 형식 문자열의 값으로 전달 되도록는 System.String 매개 변수입니다.원래 메서드 호출을 포함 하지 않는 경우는 System.IFormatProvider 매개 변수를 CultureInfo.CurrentCulture 값으로 전달 되는 System.IFormatProvider 매개 변수입니다.
원래 메서드 호출에 포함 된 경우는 System.IFormatProvider 매개 변수를 메서드 호출에서 제공 되는 공급자의 값으로 전달 되는 System.IFormatProvider 매개 변수입니다.
참고
개체의 ToString 전달 되지 않은 경우에 복합 형식 지정 메서드 구현을 호출는 ICustomFormatter 형식 공급자 또는 경우에는 Format 사용자 지정 형식 공급자의 메서드에 반환 null
.
.NET Framework에 모두를 구현 하는 세 가지 형식 공급자는 IFormatProvider 인터페이스:
NumberFormatInfo 숫자 그룹 구분 기호 및 소수에 사용할 문자 등의 정보를 서식 지정 맞춤법 및 통화 값의 통화 기호 배치를 제공 합니다.
DateTimeFormatInfo 월, 일 및 연도 날짜 패턴의 위치와 같은 관련 된 날짜 및 시간 관련 형식 지정 정보를 제공합니다.
CultureInfo 기본 숫자 형식 정보를 포함 하 여 특정 문화권의 정보와 관련 된 날짜 및 시간 관련 서식 지정 정보를 서식 지정을 포함 합니다.
또한 사용자 고유의 사용자 지정 형식 공급자를 정의할 수 있습니다.
구현자 참고
ToString(String, IFormatProvider) 메서드는 "G" (일반) 형식 지정자를 지원 해야 합니다. "G" 지정자 외 클래스 목록은 지원 되는 형식 지정자를 정의할 수 있습니다. 클래스는 형식 지정자를 처리 하도록 준비 해야 합니다 또한 null
합니다. 서식 지정 및 코드 서식 지정에 대 한 자세한 내용은 참조 하세요. 형식합니다.
적용 대상
추가 정보
.NET