복합 형식 지정Composite Formatting

.NET의 복합 형식 지정 기능에는 개체 목록과 복합 형식 문자열이 입력으로 사용됩니다.The .NET composite formatting feature takes a list of objects and a composite format string as input. 합성 서식 문자열은 고정 텍스트와 목록의 개체에 해당하는 인덱싱된 자리 표시자(서식 항목이라고 함)가 결합된 형태로 구성됩니다.A composite format string consists of fixed text intermixed with indexed placeholders, called format items, that correspond to the objects in the list. 서식 지정 작업을 통해 원래의 고정 텍스트와 목록에 있는 개체의 문자열 표현이 결합된 형태의 결과 문자열을 얻을 수 있습니다.The formatting operation yields a result string that consists of the original fixed text intermixed with the string representation of the objects in the list.

중요

복합 형식 문자열을 사용하는 대신 사용 중인 언어 및 언어 버전에서 지원하는 경우 보간된 문자열을 사용할 수 있습니다.Instead of using composite format strings, you can use interpolated strings if the language and language version that you're using support them. 보간된 문자열은 보간된 식이 포함된 문자열입니다.An interpolated string is a string that contains interpolated expressions. 각 보간된 표현식은 표현식의 값으로 해석되고 문자열이 할당될 때 결과 문자열에 포함됩니다.Each interpolated expression is resolved with the expression's value and included in the result string when the string is assigned. 자세한 내용은 문자열 보간(C# 참조)문자열 보간(Visual Basic 참조)을 참조하세요.For more information, see String interpolation (C# Reference) and Interpolated strings (Visual Basic Reference).

다음과 같은 메서드에서 합성 형식 지정 기능을 지원합니다.The composite formatting feature is supported by methods such as the following:

합성 서식 문자열Composite Format String

합성 서식 문자열과 개체 목록은 합성 서식 지정 기능을 지원하는 메서드의 인수로 사용됩니다.A composite format string and object list are used as arguments of methods that support the composite formatting feature. 합성 서식 문자열은 0개 이상의 고정 텍스트가 하나 이상의 서식 항목과 결합된 형태로 구성됩니다.A composite format string consists of zero or more runs of fixed text intermixed with one or more format items. 고정 텍스트는 사용자가 선택하는 임의의 문자열이고, 각 서식 항목은 목록의 개체나 boxed 구조체에 해당합니다.The fixed text is any string that you choose, and each format item corresponds to an object or boxed structure in the list. 합성 서식 지정 기능은 각 서식 항목을 목록에 있는 해당 개체의 문자열 표현으로 바꿔 새로운 결과 문자열을 반환합니다.The composite formatting feature returns a new result string where each format item is replaced by the string representation of the corresponding object in the list.

다음은 이 기능을 보여 주는 Format 코드 조각입니다.Consider the following Format code fragment.

string name = "Fred";
String.Format("Name = {0}, hours = {1:hh}", name, DateTime.Now);
Dim name As String = "Fred"
String.Format("Name = {0}, hours = {1:hh}", name, DateTime.Now)

고정 텍스트는 “Name =” 및 “, hours =”입니다.The fixed text is "Name = " and ", hours = ". 형식 항목은 인덱스가 0이고 name 개체에 해당하는 “{0}”과(와) 인덱스가 1이고 DateTime.Now 개체에 해당하는 “{1:hh}”입니다.The format items are "{0}", whose index is 0, which corresponds to the object name, and "{1:hh}", whose index is 1, which corresponds to the object DateTime.Now.

서식 항목 구문Format Item Syntax

각 서식 항목의 형태와 구성 요소는 다음과 같습니다.Each format item takes the following form and consists of the following components:

{ index[,alignment][:formatString]}{ index[,alignment][:formatString]}

여기서 중괄호("{"와 "}")의 짝이 반드시 맞아야 합니다.The matching braces ("{" and "}") are required.

Index 구성 요소Index Component

매개 변수 지정자라고도 하는 필수 index 구성 요소는 0부터 시작하는 숫자로, 개체 목록에서 해당하는 항목을 식별합니다.The mandatory index component, also called a parameter specifier, is a number starting from 0 that identifies a corresponding item in the list of objects. 즉, 매개 변수 지정자가 0인 서식 항목은 목록에 있는 첫째 개체의 서식을 지정하고 매개 변수 지정자가 1인 서식 항목은 목록에 있는 둘째 개체의 서식을 지정하는 식으로 적용됩니다.That is, the format item whose parameter specifier is 0 formats the first object in the list, the format item whose parameter specifier is 1 formats the second object in the list, and so on. 다음 예제에는 10보다 작은 소수를 나타내고 0부터 3까지 번호가 매겨진 4개의 매개 변수 지정자가 포함되어 있습니다.The following example includes four parameter specifiers, numbered zero through three, to represent prime numbers less than ten:

string primes;
primes = String.Format("Prime numbers less than 10: {0}, {1}, {2}, {3}",
                       2, 3, 5, 7 );
Console.WriteLine(primes);
// The example displays the following output:
//      Prime numbers less than 10: 2, 3, 5, 7
Dim primes As String
primes = String.Format("Prime numbers less than 10: {0}, {1}, {2}, {3}",
                       2, 3, 5, 7 )
Console.WriteLine(primes)
' The example displays the following output:
'      Prime numbers less than 10: 2, 3, 5, 7

동일한 매개 변수 지정자를 지정하여 여러 서식 항목이 개체 목록의 동일한 요소를 참조하도록 할 수 있습니다.Multiple format items can refer to the same element in the list of objects by specifying the same parameter specifier. 예를 들어, 복합 서식 문자열을 다음과 같이 지정하여 동일한 숫자 값을 16진수, 지수 및 숫자 서식으로 지정할 수 있습니다. 다음 예제와 같이 "0x{0:X} {0:E} {0:N}"가 표시됩니다.For example, you can format the same numeric value in hexadecimal, scientific, and number format by specifying a composite format string such as : "0x{0:X} {0:E} {0:N}", as the following example shows.

string multiple = String.Format("0x{0:X} {0:E} {0:N}",
                                Int64.MaxValue);
Console.WriteLine(multiple);
// The example displays the following output:
//      0x7FFFFFFFFFFFFFFF 9.223372E+018 9,223,372,036,854,775,807.00
Dim multiple As String = String.Format("0x{0:X} {0:E} {0:N}",
                                       Int64.MaxValue)
Console.WriteLine(multiple)
' The example displays the following output:
'      0x7FFFFFFFFFFFFFFF 9.223372E+018 9,223,372,036,854,775,807.00

각 서식 항목은 목록의 어떤 개체나 참조할 수 있습니다.Each format item can refer to any object in the list. 예를 들어, 세 개의 개체가 있을 경우 “{1} {0} {2}”와 같이 복합 형식 문자열을 지정하여 둘째, 첫째, 셋째 개체의 서식을 지정할 수 있습니다.For example, if there are three objects, you can format the second, first, and third object by specifying a composite format string like this: "{1} {0} {2}". 서식 항목에서 참조하지 않는 개체는 무시됩니다.An object that is not referenced by a format item is ignored. 매개 변수 지정자가 개체 목록 범위를 벗어나는 항목을 지정하면 런타임에 FormatException이 발생합니다.A FormatException is thrown at runtime if a parameter specifier designates an item outside the bounds of the list of objects.

Alignment 구성 요소Alignment Component

선택적인 alignment 구성 요소는 기본 형식의 필드 너비를 나타내는 부호 있는 정수입니다.The optional alignment component is a signed integer indicating the preferred formatted field width. alignment 값이 형식이 지정된 문자열보다 작으면 alignment는 무시되고 형식이 지정된 문자열의 길이가 필드 너비로 사용됩니다.If the value of alignment is less than the length of the formatted string, alignment is ignored and the length of the formatted string is used as the field width. alignment가 양수이면 필드에서 형식이 지정된 데이터가 오른쪽 맞춤되고 alignment가 음수이면 왼쪽 맞춤됩니다.The formatted data in the field is right-aligned if alignment is positive and left-aligned if alignment is negative. 채우기가 필요하면 공백이 사용됩니다.If padding is necessary, white space is used. alignment를 지정하는 경우 쉼표가 필요합니다.The comma is required if alignment is specified.

다음 예제에서는 두 배열, 즉 직원의 이름을 포함하는 배열과 2주 동안의 작업 시간을 포함하는 배열을 정의합니다.The following example defines two arrays, one containing the names of employees and the other containing the hours they worked over a two-week period. 복합 형식 문자열은 20자 필드에 이름을 왼쪽 맞춤하고 5자 필드에 해당 시간을 오른쪽 맞춤합니다.The composite format string left-aligns the names in a 20-character field, and right-aligns their hours in a 5-character field. 소수 1자리로 시간 형식을 지정하기 위해 "N1" 표준 형식 문자열도 사용됩니다.Note that the "N1" standard format string is also used to format the hours with one fractional digit.

using System;

public class Example
{
   public static void Main()
   {
      string[] names = { "Adam", "Bridgette", "Carla", "Daniel",
                         "Ebenezer", "Francine", "George" };
      decimal[] hours = { 40, 6.667m, 40.39m, 82, 40.333m, 80,
                                 16.75m };

      Console.WriteLine("{0,-20} {1,5}\n", "Name", "Hours");
      for (int ctr = 0; ctr < names.Length; ctr++)
         Console.WriteLine("{0,-20} {1,5:N1}", names[ctr], hours[ctr]);

   }
}
// The example displays the following output:
//       Name                 Hours
//
//       Adam                  40.0
//       Bridgette              6.7
//       Carla                 40.4
//       Daniel                82.0
//       Ebenezer              40.3
//       Francine              80.0
//       George                16.8
Module Example
   Public Sub Main()
      Dim names() As String = { "Adam", "Bridgette", "Carla", "Daniel",
                                "Ebenezer", "Francine", "George" }
      Dim hours() As Decimal = { 40, 6.667d, 40.39d, 82, 40.333d, 80,
                                 16.75d }

      Console.WriteLine("{0,-20} {1,5}", "Name", "Hours")
      Console.WriteLine()
      For ctr As Integer = 0 To names.Length - 1
         Console.WriteLine("{0,-20} {1,5:N1}", names(ctr), hours(ctr))
      Next
   End Sub
End Module
' The example displays the following output:
'       Name                 Hours
'
'       Adam                  40.0
'       Bridgette              6.7
'       Carla                 40.4
'       Daniel                82.0
'       Ebenezer              40.3
'       Francine              80.0
'       George                16.8

Format String 구성 요소Format String Component

선택적 formatString 구성 요소는 서식을 지정할 개체 형식에 적절한 형식 문자열입니다.The optional formatString component is a format string that is appropriate for the type of object being formatted. 해당 개체가 숫자 값이면 표준 또는 사용자 지정 숫자 형식 문자열을, DateTime 개체이면 표준 또는 사용자 지정 날짜 및 시간 형식 문자열을, 열거형 값이면 열거형 서식 문자열을 지정합니다.Specify a standard or custom numeric format string if the corresponding object is a numeric value, a standard or custom date and time format string if the corresponding object is a DateTime object, or an enumeration format string if the corresponding object is an enumeration value. formatString을 지정하지 않으면 숫자, 날짜 및 시간, 또는 열거형 형식에 대해 일반("G") 형식 지정자가 사용됩니다.If formatString is not specified, the general ("G") format specifier for a numeric, date and time, or enumeration type is used. formatString을 지정하는 경우 콜론이 필요합니다.The colon is required if formatString is specified.

다음 표에는 미리 정의된 서식 문자열 집합을 지원하는 .NET Framework 클래스 라이브러리의 형식 또는 형식 범주와 지원되는 서식 문자열을 나열하는 항목에 대한 링크가 나와 있습니다.The following table lists types or categories of types in the .NET Framework class library that support a predefined set of format strings, and provides links to the topics that list the supported format strings. 문자열 서식 지정은 애플리케이션 정의 형식에서 지원하는 형식 문자열 집합을 정의하는, 모든 기존 형식을 위한 새 형식 문자열을 정의하는 확장 가능한 메커니즘입니다.Note that string formatting is an extensible mechanism that makes it possible to define new format strings for all existing types as well as to define a set of format strings supported by an application-defined type. 자세한 내용은 IFormattableICustomFormatter 인터페이스 항목을 참조하세요.For more information, see the IFormattable and ICustomFormatter interface topics.

형식 또는 형식 범주Type or type category 참조See
날짜 및 시간 형식(DateTime, DateTimeOffset)Date and time types (DateTime, DateTimeOffset) 표준 날짜 및 시간 형식 문자열Standard Date and Time Format Strings

사용자 지정 날짜 및 시간 형식 문자열Custom Date and Time Format Strings
열거형 형식(System.Enum에서 파생되는 모든 형식)Enumeration types (all types derived from System.Enum) Enumeration Format StringsEnumeration Format Strings
숫자 형식(BigInteger, Byte, Decimal, Double, Int16, Int32, Int64, SByte, Single, UInt16, UInt32, UInt64)Numeric types (BigInteger, Byte, Decimal, Double, Int16, Int32, Int64, SByte, Single, UInt16, UInt32, UInt64) Standard Numeric Format StringsStandard Numeric Format Strings

Custom Numeric Format StringsCustom Numeric Format Strings
Guid Guid.ToString(String)
TimeSpan 표준 TimeSpan 서식 문자열Standard TimeSpan Format Strings

사용자 지정 TimeSpan 서식 문자열Custom TimeSpan Format Strings

이스케이프 중괄호Escaping Braces

여는 중괄호와 닫는 중괄호는 서식 항목의 시작과 끝으로 해석됩니다.Opening and closing braces are interpreted as starting and ending a format item. 따라서 리터럴 여는 중괄호나 닫는 중괄호를 표시하려면 이스케이프 시퀀스를 사용해야 합니다.Consequently, you must use an escape sequence to display a literal opening brace or closing brace. 고정 텍스트에서 여는 중괄호 2개("{{")를 사용하면 여는 중괄호 1개("{")가, 닫는 중괄호 2개("}}")를 사용하면 닫는 중괄호 1개("}")가 표시됩니다.Specify two opening braces ("{{") in the fixed text to display one opening brace ("{"), or two closing braces ("}}") to display one closing brace ("}"). 서식 항목에서 중괄호는 나타나는 순서대로 해석됩니다.Braces in a format item are interpreted sequentially in the order they are encountered. 중첩 중괄호 해석은 지원되지 않습니다.Interpreting nested braces is not supported.

이스케이프된 중괄호가 해석되는 방식에 따라 예기치 않은 결과가 나올 수도 있습니다.The way escaped braces are interpreted can lead to unexpected results. 예를 들어 여는 중괄호, 10진수로 서식 지정된 숫자 값 및 닫는 중괄호를 표시하기 위해 서식 항목 “{{{0:D}}}”를 사용했다고 가정해 봅시다.For example, consider the format item "{{{0:D}}}", which is intended to display an opening brace, a numeric value formatted as a decimal number, and a closing brace. 그러나 이 서식 항목은 다음과 같이 해석됩니다.However, the format item is actually interpreted in the following manner:

  1. 맨 처음 여는 중괄호 2개("{{")는 이스케이프되어 여는 중괄호 1개가 됩니다.The first two opening braces ("{{") are escaped and yield one opening brace.

  2. 그 다음 3개의 문자("{0:")는 서식 항목의 시작으로 해석됩니다.The next three characters ("{0:") are interpreted as the start of a format item.

  3. 다음 문자("D")는 10진 표준 숫자 서식 지정자로 해석되지만, 그 다음 이스케이프된 중괄호 2개("}}")는 중괄호 1개로 인식됩니다.The next character ("D") would be interpreted as the Decimal standard numeric format specifier, but the next two escaped braces ("}}") yield a single brace. 결과 문자열("D}")은 표준 숫자 서식 지정자가 아니므로 리터럴 문자열 "D}"를 표시하는 사용자 지정 서식 문자열로 해석됩니다.Because the resulting string ("D}") is not a standard numeric format specifier, the resulting string is interpreted as a custom format string that means display the literal string "D}".

  4. 마지막 중괄호("}")는 서식 항목의 끝으로 해석됩니다.The last brace ("}") is interpreted as the end of the format item.

  5. 표시되는 최종 결과는 리터럴 문자열 "{D}"입니다.The final result that is displayed is the literal string, "{D}". 서식 지정 시 의도했던 숫자 값이 표시되지 않습니다.The numeric value that was to be formatted is not displayed.

이스케이프된 중괄호 및 서식 항목이 잘못 해석되지 않도록 코드를 작성하는 방법 중 하나는 중괄호와 서식 항목의 서식을 따로 지정하는 것입니다.One way to write your code to avoid misinterpreting escaped braces and format items is to format the braces and format item separately. 즉, 첫째 서식 작업에서 리터럴 여는 중괄호를 표시하고 다음 작업에서 서식 항목의 결과를 표시한 다음 마지막 작업에서 리터럴 닫는 괄호를 표시합니다.That is, in the first format operation display a literal opening brace, in the next operation display the result of the format item, then in the final operation display a literal closing brace. 다음 예제에서 이 방법을 보여 줍니다.The following example illustrates this approach.

int value = 6324;
string output = string.Format("{0}{1:D}{2}", 
                             "{", value, "}");
Console.WriteLine(output);
// The example displays the following output:
//       {6324}                            
Dim value As Integer = 6324
Dim output As String = String.Format("{0}{1:D}{2}", _
                                     "{", value, "}")
Console.WriteLine(output)   
' The example displays the following output:
'       {6324}

처리 순서Processing Order

합성 서식 지정 메서드에 대한 호출에 값이 IFormatProvider이 아닌 null 인수가 포함되는 경우, 런타임은 IFormatProvider.GetFormat 메서드를 호출하여 ICustomFormatter 구현을 요청합니다.If the call to the composite formatting method includes an IFormatProvider argument whose value is not null, the runtime calls its IFormatProvider.GetFormat method to request an ICustomFormatter implementation. 메서드가 ICustomFormatter 구현을 반환할 수 있는 경우 복합 서식 지정 메서드의 호출 기간 동안 캐시됩니다.If the method is able to return an ICustomFormatter implementation, it's cached for the duration of the call of the composite formatting method.

다음과 같이 서식 항목에 상응하는 매개 변수 목록의 각 값이 문자열로 변환됩니다.Each value in the parameter list that corresponds to a format item is converted to a string as follows:

  1. 서식을 지정할 값이 null이면 빈 문자열 String.Empty이 반환됩니다.If the value to be formatted is null, an empty string String.Empty is returned.

  2. ICustomFormatter 구현을 사용할 수 있는 경우 런타임은 Format 메서드를 호출합니다.If an ICustomFormatter implementation is available, the runtime calls its Format method. IFormatProvider 구현과 함께, 형식 항목의 formatString 값이 있는 경우 메서드에 이 값을 전달하고, 값이 없는 경우에는 null을 전달합니다.It passes the method the format item's formatString value, if one is present, or null if it's not, along with the IFormatProvider implementation. ICustomFormatter.Format 메서드에 대한 호출이 null을 반환하는 경우 실행은 다음 단계로 진행합니다. 그렇지 않은 경우 ICustomFormatter.Format 호출의 결과가 반환됩니다.If the call to the ICustomFormatter.Format method returns null, execution proceeds to the next step; otherwise, the result of the ICustomFormatter.Format call is returned.

  3. 값이 IFormattable 인터페이스를 구현하면 인터페이스의 ToString(String, IFormatProvider) 메서드가 호출됩니다.If the value implements the IFormattable interface, the interface's ToString(String, IFormatProvider) method is called. formatString 값(형식 항목에 있는 경우) 또는 null(없는 경우)이 메서드에 전달됩니다.The method is passed the formatString value, if one is present in the format item, or null if it's not. IFormatProvider 인수는 다음과 같이 결정됩니다.The IFormatProvider argument is determined as follows:

  4. ToString을 재정의하거나 기본 클래스의 동작을 상속하는, 형식의 매개 변수 없는 Object.ToString() 메서드가 호출됩니다.The type's parameterless ToString method, which either overrides Object.ToString() or inherits the behavior of its base class, is called. 이 경우, 형식 항목에서 formatString 구성 요소로 지정된 형식 문자열(있는 경우)은 무시됩니다.In this case, the format string specified by the formatString component in the format item, if it's present, is ignored.

앞의 단계가 수행된 후에 맞춤이 적용됩니다.Alignment is applied after the preceding steps have been performed.

코드 예제Code Examples

다음 예제에서는 합성 서식 지정을 사용하여 만든 문자열과 개체의 ToString 메서드를 사용하여 만든 문자열을 보여 줍니다.The following example shows one string created using composite formatting and another created using an object's ToString method. 두 형식의 서식을 지정한 결과는 같습니다.Both types of formatting produce equivalent results.

string FormatString1 = String.Format("{0:dddd MMMM}", DateTime.Now);
string FormatString2 = DateTime.Now.ToString("dddd MMMM");
Dim FormatString1 As String = String.Format("{0:dddd MMMM}", DateTime.Now)
Dim FormatString2 As String = DateTime.Now.ToString("dddd MMMM") 

오늘이 5월의 목요일이라고 가정할 때 앞의 예제에서 두 문자열의 값은 미국 영어 문화권에서 Thursday May 입니다.Assuming that the current day is a Thursday in May, the value of both strings in the preceding example is Thursday May in the U.S. English culture.

Console.WriteLineString.Format과 동일한 기능을 제공합니다.Console.WriteLine exposes the same functionality as String.Format. 두 메서드가 유일하게 다른 점은 String.Format은 결과를 문자열로 반환하는 반면 Console.WriteLineConsole 개체와 연결된 출력 스트림에 결과를 쓴다는 것입니다.The only difference between the two methods is that String.Format returns its result as a string, while Console.WriteLine writes the result to the output stream associated with the Console object. 다음 예제에서는 Console.WriteLine 메서드를 사용하여 MyInt 값의 서식을 통화 값으로 지정합니다.The following example uses the Console.WriteLine method to format the value of MyInt to a currency value.

int MyInt = 100;
Console.WriteLine("{0:C}", MyInt);
// The example displays the following output 
// if en-US is the current culture:
//        $100.00
Dim MyInt As Integer = 100
Console.WriteLine("{0:C}", MyInt)
' The example displays the following output
' if en-US is the current culture:
'        $100.00

다음 예제에서는 하나의 개체 서식을 두 가지 다른 방법으로 지정하는 경우를 비롯하여 여러 개체의 서식을 지정하는 방법을 보여 줍니다.The following example demonstrates formatting multiple objects, including formatting one object two different ways.

string myName = "Fred";
Console.WriteLine(String.Format("Name = {0}, hours = {1:hh}, minutes = {1:mm}",
      myName, DateTime.Now));
// Depending on the current time, the example displays output like the following:
//    Name = Fred, hours = 11, minutes = 30                 
Dim myName As String = "Fred"
Console.WriteLine(String.Format("Name = {0}, hours = {1:hh}, minutes = {1:mm}", _
                  myName, DateTime.Now))
' Depending on the current time, the example displays output like the following:
'    Name = Fred, hours = 11, minutes = 30                 

다음 예제에서는 서식 지정에서 맞춤을 사용하는 방법을 보여 줍니다.The following example demonstrates the use of alignment in formatting. 서식 지정되는 인수가 세로줄 문자(|) 사이에 위치하면서 결과 맞춤이 강조됩니다.The arguments that are formatted are placed between vertical bar characters (|) to highlight the resulting alignment.

string myFName = "Fred";
string myLName = "Opals";
int myInt = 100;
string FormatFName = String.Format("First Name = |{0,10}|", myFName);
string FormatLName = String.Format("Last Name = |{0,10}|", myLName);
string FormatPrice = String.Format("Price = |{0,10:C}|", myInt); 
Console.WriteLine(FormatFName);
Console.WriteLine(FormatLName);
Console.WriteLine(FormatPrice);
Console.WriteLine();

FormatFName = String.Format("First Name = |{0,-10}|", myFName);
FormatLName = String.Format("Last Name = |{0,-10}|", myLName);
FormatPrice = String.Format("Price = |{0,-10:C}|", myInt);
Console.WriteLine(FormatFName);
Console.WriteLine(FormatLName);
Console.WriteLine(FormatPrice);
// The example displays the following output on a system whose current
// culture is en-US:
//          First Name = |      Fred|
//          Last Name = |     Opals|
//          Price = |   $100.00|
//
//          First Name = |Fred      |
//          Last Name = |Opals     |
//          Price = |$100.00   |
   Dim myFName As String = "Fred"
   Dim myLName As String = "Opals"

   Dim myInt As Integer = 100
   Dim FormatFName As String = String.Format("First Name = |{0,10}|", myFName)
   Dim FormatLName As String = String.Format("Last Name = |{0,10}|", myLName)
   Dim FormatPrice As String = String.Format("Price = |{0,10:C}|", myInt)
   Console.WriteLine(FormatFName)
   Console.WriteLine(FormatLName)
   Console.WriteLine(FormatPrice)
   Console.WriteLine()
   
   FormatFName = String.Format("First Name = |{0,-10}|", myFName)
   FormatLName = String.Format("Last Name = |{0,-10}|", myLName)
   FormatPrice = String.Format("Price = |{0,-10:C}|", myInt)
   Console.WriteLine(FormatFName)
   Console.WriteLine(FormatLName)
   Console.WriteLine(FormatPrice)
   ' The example displays the following output on a system whose current
   ' culture is en-US:
   '          First Name = |      Fred|
   '          Last Name = |     Opals|
   '          Price = |   $100.00|
   '
   '          First Name = |Fred      |
   '          Last Name = |Opals     |
   '          Price = |$100.00   |

참고 항목See also