Bileşik biçimlendirmeComposite formatting

.NET bileşik biçimlendirme özelliği, nesnelerin bir listesini ve giriş olarak bileşik biçim dizesini alır.The .NET composite formatting feature takes a list of objects and a composite format string as input. Bir bileşik biçimlendirme dizesi, sabit metinle karışık bir şekilde listedeki nesnelere karşılık gelen, biçim öğeleri adı verilen dizinli yer tutuculardan oluşur.A composite format string consists of fixed text intermixed with indexed placeholders, called format items, that correspond to the objects in the list. Biçimlendirme işlemi sonuç olarak, orijinal sabit metin ve listedeki nesnelerin dize temsillerinin karışımından oluşan bir dize oluşturur.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.

Önemli

Bileşik biçim dizeleri kullanmak yerine, kullandığınız dil ve dil sürümü bunları destekliyorsa enterpolasyonlu dizeleri kullanabilirsiniz.Instead of using composite format strings, you can use interpolated strings if the language and language version that you're using support them. Enterpolasyonlu dize, enterpolasyonlu ifadeleriiçeren bir dizedir.An interpolated string is a string that contains interpolated expressions. Her enterpolasyonlu ifade ifadenin değeri ile çözülür ve dize atandığında sonuç dizesinde yer.Each interpolated expression is resolved with the expression's value and included in the result string when the string is assigned. Daha fazla bilgi için String enterpolasyonu (C# Reference) ve Enterpolasyonlu dizeleri (Visual Basic Reference)bakın.For more information, see String interpolation (C# Reference) and Interpolated strings (Visual Basic Reference).

Bileşik biçimlendirme özelliği aşağıdaki gibi yöntemler tarafından desteklenir:The composite formatting feature is supported by methods such as the following:

Bileşik Biçim DizesiComposite Format String

Bileşik biçimlendirme özelliğini destekleyen metotlarda bir bileşik biçimlendirme dizesi ve nesne listesi bağımsız değişkenler olarak kullanılır.A composite format string and object list are used as arguments of methods that support the composite formatting feature. Bir bileşik biçimlendirme dizesi sıfır veya daha fazla sabit metin bölümüyle karışık olarak bir veya daha fazla biçim öğesinden oluşur.A composite format string consists of zero or more runs of fixed text intermixed with one or more format items. Sabit metin seçtiğiniz herhangi bir dizedir, ve her biçim öğesi listedeki bir nesneye veya kutulu yapıya karşılık gelir.The fixed text is any string that you choose, and each format item corresponds to an object or boxed structure in the list. Bileşik biçimlendirme özelliği, her biçim öğesinin yerine listede karşılık gelen nesnenin dize temsili yerleştirilmiş bir şekilde yeni bir sonuç dizesi döndürür.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.

Aşağıdaki Format kod parçasını göz önünde bulundurun.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)

Sabit metin "Name = ve, hours = " dir. "The fixed text is "Name = " and ", hours = ". Biçim öğeleri "{0}", dizini 0 olan, namenesneye{1:hh}karşılık gelen " ve " ", DateTime.Nowdizin1 olan nesneye karşılık gelen .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.

Biçim Öğesi SözdizimiFormat Item Syntax

Her biçim öğesi aşağıdaki biçimi alır ve aşağıdaki bileşenlerden oluşur:Each format item takes the following form and consists of the following components:

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

Eşleşen ayraçlar ("{" ve "}") gereklidir.The matching braces ("{" and "}") are required.

Dizin BileşeniIndex Component

Parametre belirtimi olarak da adlandırılan zorunlu dizin bileşeni, nesneler listesinde karşılık gelen bir maddeyi tanımlayan 0'dan başlayarak bir sayıdır.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. Yani, parametre tanımlayıcısı 0 olan biçim öğesi listedeki ilk nesneyi biçimlendirir, parametre tanımlayıcısı 1 olan biçim öğesi listedeki ikinci nesneyi biçimlendirir ve bu şekilde devam eder.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. Aşağıdaki örnekte, ondan küçük asal sayıları temsil etmek için sıfırdan üçe kadar numaralanmış dört parametre belirteçleri içerir: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

Birden çok biçim öğesi, aynı parametre tanımlayıcısını belirterek nesne listesindeki aynı öğeye başvurabilir.Multiple format items can refer to the same element in the list of objects by specifying the same parameter specifier. Örneğin, aşağıdaki örnekte görüldüğü gibi : "0x{0:X} {0:E} {0:N}" gibi bir bileşik biçim dizesi belirterek hexadecimal, bilimsel ve sayı biçiminde aynı sayısal değeri biçimlendirebilirsiniz.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

Her biçim öğesi listedeki herhangi bir nesneye başvurabilir.Each format item can refer to any object in the list. Örneğin, üç nesne varsa, aşağıdaki gibi bir bileşik biçim dizesi belirterek ikinci, birinci{1} {0} {2}ve üçüncü nesneyi biçimlendirebilirsiniz: " ".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}". Bir biçimlendirme nesnesi tarafından başvurulmayan nesneler yok sayılır.An object that is not referenced by a format item is ignored. Parametre belirteci, nesneler listesinin sınırları dışında bir öğe belirtirse, çalışma zamanında a FormatException atılır.A FormatException is thrown at runtime if a parameter specifier designates an item outside the bounds of the list of objects.

Hizalama BileşeniAlignment Component

İsteğe bağlı hizalama bileşeni, tercih edilen biçimlendirilmiş alan genişliğini gösteren imzalı bir tamsayıdır.The optional alignment component is a signed integer indicating the preferred formatted field width. Hizalama değeri biçimlendirilmiş dize uzunluğundan daha azsa, hizalama yoksayılmaz ve biçimlendirilmiş dize uzunluğu alan genişliği olarak kullanılır.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. Hizalama pozitifse alandaki biçimlendirilmiş veriler sağ hizalanır ve hizalama negatifse sol hizalanır.The formatted data in the field is right-aligned if alignment is positive and left-aligned if alignment is negative. Eğer iç boşluk gerekliyse, boşluk kullanılır.If padding is necessary, white space is used. Hizalama belirtilmişse virgül gereklidir.The comma is required if alignment is specified.

Aşağıdaki örnek, biri çalışanların adlarını, diğeri ise iki haftalık bir süre boyunca çalıştıkları saatleri içeren iki dizi tanımlar.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. Bileşik biçim dizesi, 20 karakterlik bir alandaki adları sola hizalar ve saatlerini 5 karakterlik bir alanda sağa hizalar.The composite format string left-aligns the names in a 20-character field, and right-aligns their hours in a 5-character field. "N1" standart biçim dizesi de bir kesirli basamak ile saat biçimlendirmek için kullanılır unutmayın.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

Biçim Dizesi BileşeniFormat String Component

İsteğe bağlı biçimString bileşeni biçimlendirilmekte olan nesne türüne uygun bir biçim dizesidir.The optional formatString component is a format string that is appropriate for the type of object being formatted. Karşılık gelen nesne sayısal bir değerse standart veya özel sayısal biçim dizesi, ilgili nesne DateTime bir nesneyse standart veya özel tarih ve saat biçimi dizesi veya karşılık gelen nesne numaralandırma değeriyse numaralandırma biçimi dizesi belirtin.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 belirtilmemişse, sayısal, tarih ve saat veya numaralandırma türü için genel ("G") biçim belirtici kullanılır.If formatString is not specified, the general ("G") format specifier for a numeric, date and time, or enumeration type is used. formatString belirtilirse iki nokta üst üste gereklidir.The colon is required if formatString is specified.

Aşağıdaki tablo, .NET Framework içinde bulunan, önceden tanımlanmış bir biçimlendirme dizesi kümesini destekleyen türleri ve kategorileri listeler, ve desteklenen biçimlendirme dizelerini listeleyen konulara bağlantılar sağlar.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. Dize biçimlendirmenin, tüm varolan türler için yeni biçimlendirme dizeleri tanımlanabilmesini mümkün kılmanın yanı sıra uygulamada tanımlanmış bir tür tarafından desteklenen bir biçimlendirme dizesi kümesinin tanımlanabilmesine olanak veren genişletilebilir bir mekanizma olduğuna dikkat edin.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. Daha fazla bilgi IFormattable için, bkz. ICustomFormatterFor more information, see the IFormattable and ICustomFormatter interface topics.

Tür veya tür kategorisiType or type category Bkz.See
Tarih ve saatDateTime DateTimeOffsettürleri ( , )Date and time types (DateTime, DateTimeOffset) Standart Tarih ve Saat Biçim DizeleriStandard Date and Time Format Strings

Özel Tarih ve Saat Biçim DizeleriCustom Date and Time Format Strings
Numaralandırma türleri (tüm türler) System.EnumEnumeration types (all types derived from System.Enum) Numaralandırma Biçimi DizeleriEnumeration Format Strings
Sayısal tiplerBigInteger( 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) Standart Sayısal Biçim DizeleriStandard Numeric Format Strings

Özel Sayısal Biçim DizeleriCustom Numeric Format Strings
Guid Guid.ToString(String)
TimeSpan Standart TimeSpan Biçim DizeleriStandard TimeSpan Format Strings

Özel TimeSpan Biçim DizeleriCustom TimeSpan Format Strings

Çıkış Yapan AyraçlarEscaping Braces

Açma ve kapatma ayraçları bir biçim öğesinin başlangıcı ve bitişi olarak yorumlanır.Opening and closing braces are interpreted as starting and ending a format item. Sonuç olarak, sabit bir açılış veya kapanış ayracını görüntülemek için bir kaçış dizisi kullanmanız gerekir.Consequently, you must use an escape sequence to display a literal opening brace or closing brace. Bir açılış ayracı ("{") görüntülemek için sabit metinde iki açılış ayracı ("{{"), veya bir kapanış ayracı ("}") görüntülemek için sabit metinde iki kapanış ayracı ("}}") belirtin.Specify two opening braces ("{{") in the fixed text to display one opening brace ("{"), or two closing braces ("}}") to display one closing brace ("}"). Bir biçim öğesindeki ayraçlar, karşılaşıldıkları sırada sıralı olarak yorumlanır.Braces in a format item are interpreted sequentially in the order they are encountered. İç içe ayraçları yorumlama desteklenmez.Interpreting nested braces is not supported.

Kaçırılan ayraçların yorumlanma şekli beklenmeyen sonuçlara neden olabilir.The way escaped braces are interpreted can lead to unexpected results. Örneğin, bir açılış ayracı,{0:D}ondalık sayı olarak biçimlendirilmiş sayısal bir değer ve kapanış ayracı görüntülemek için tasarlanmış biçim öğesi "{{ }}" düşünün.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. Ancak, biçim öğesi aslında şu şekilde yorumlanır:However, the format item is actually interpreted in the following manner:

  1. İlk iki açılış ayracı ("{{") kaçırılır ve bir açılış ayracı olur.The first two opening braces ("{{") are escaped and yield one opening brace.

  2. Sonraki üç karakter ("{0:") bir biçim öğesinin başlangıcı olarak yorumlanır.The next three characters ("{0:") are interpreted as the start of a format item.

  3. Sonraki karakter ("D") Ondalık standart sayısal biçim tanımlayıcısı olarak yorumlanır, ancak sonraki iki kaçırılan ayıraç ("}}") tek bir ayıraç olur.The next character ("D") would be interpreted as the Decimal standard numeric format specifier, but the next two escaped braces ("}}") yield a single brace. Sonuç dize ("D}") standart bir sayısal biçim tanımlayıcısı olmadığı için, sonuç dize özel bir biçimlendirme dizesi olarak yorumlanır ve bu nedenle "D}" sabit dizesini görüntüler.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. Son ayıraç ("}") biçim öğesinin bitişi olarak yorumlanır.The last brace ("}") is interpreted as the end of the format item.

  5. Sonuç olarak "{D}" sabit dizesi görüntülenir.The final result that is displayed is the literal string, "{D}". Biçimlendirilmek istenen sayısal değer görüntülenmez.The numeric value that was to be formatted is not displayed.

Kodunuzun kaçırılan ayraçları ve format öğelerini yanlış yorumlamasından kaçınmanın bir yolu, ayraçları ve biçim öğesini ayrı olarak biçimlendirmektir.One way to write your code to avoid misinterpreting escaped braces and format items is to format the braces and format item separately. Yani, ilk biçimlendirme işleminde bir sabit açılış ayracı görüntülemek, sonraki işlemde biçim öğesinin sonucunu görüntülemek ve son işlemde de bir sabit kapanış ayracı görüntülemektir.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. Aşağıdaki örnek bu yaklaşımı gösterir.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}

İşlem SırasıProcessing Order

IFormatProvider Bileşik biçimlendirme yöntemine yapılan çağrı, değeri olmayan nullbir bağımsız değişken IFormatProvider.GetFormat içeriyorsa, çalışma zamanı ICustomFormatter bir uygulama istemek için yöntemini çağırır.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. Yöntem bir ICustomFormatter uygulamayı döndürebiliyorsa, bileşik biçimlendirme yönteminin çağrı süresi boyunca önbelleğe alınmış olur.If the method is able to return an ICustomFormatter implementation, it's cached for the duration of the call of the composite formatting method.

Bir biçim öğesine karşılık gelen parametre listesindeki her değer aşağıdaki gibi bir dize dönüştürülür:Each value in the parameter list that corresponds to a format item is converted to a string as follows:

  1. Biçimlendirilecek değer ise, nullboş String.Empty bir dize döndürülür.If the value to be formatted is null, an empty string String.Empty is returned.

  2. Bir ICustomFormatter uygulama varsa, çalışma zamanı Format yöntemini çağırır.If an ICustomFormatter implementation is available, the runtime calls its Format method. Bir tane varsa veya null IFormatProvider yoksa, uygulama ile birlikte biçim öğesinin biçim öğesinin biçimString değerini yönteme geçirir.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 Yönteme çağrı dönerse, nullyürütme bir sonraki adıma devam eder; aksi takdirde, ICustomFormatter.Format arama sonucu döndürülür.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. Değer IFormattable arabirimi uygularsa, arabirimin ToString(String, IFormatProvider) yöntemi çağrılır.If the value implements the IFormattable interface, the interface's ToString(String, IFormatProvider) method is called. Yöntem, biçim öğesinde varsa veya null yoksa biçimString değerine geçirilir.The method is passed the formatString value, if one is present in the format item, or null if it's not. Bağımsız IFormatProvider değişken aşağıdaki gibi belirlenir:The IFormatProvider argument is determined as follows:

  4. Türün taban sınıfının ToString davranışını geçersiz Object.ToString() kılan veya devralan parametresiz yöntemi çağrılır.The type's parameterless ToString method, which either overrides Object.ToString() or inherits the behavior of its base class, is called. Bu durumda, biçim öğesindeki biçimString bileşeni tarafından belirtilen biçim dizesi, varsa yoksayılır.In this case, the format string specified by the formatString component in the format item, if it's present, is ignored.

Üstteki adımlar gerçekleştirildikten sonra hizalama uygulanır.Alignment is applied after the preceding steps have been performed.

Kod ÖrnekleriCode Examples

Aşağıdaki örnekte, bileşik biçimlendirme kullanılarak oluşturulan bir dize ToString ve nesnenin yöntemi kullanılarak oluşturulan başka bir dize gösterilmektedir.The following example shows one string created using composite formatting and another created using an object's ToString method. İki biçimlendirme türü de eşdeğer sonuçlar üretir.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") 

Geçerli günün Mayıs ayında bir Perşembe olduğunu varsayarsak, önceki örnekteki Thursday May her iki dizenin değeri ABD İngilizce kültüründedir.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.WriteLineile aynı işlevselliği String.Formatortaya çıkarır.Console.WriteLine exposes the same functionality as String.Format. İki yöntem arasındaki tek fark, sonucu String.Format Console.WriteLine Console nesneyle ilişkili çıkış akışına yazarken sonucu bir dize olarak döndürür.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. Aşağıdaki örnekte, Console.WriteLine para birimi MyInt değerine değer biçimlendirmek için yöntem kullanır.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

Aşağıdaki örnek birden çok nesneyi biçimlendirmeyi ve bir nesneyi iki farklı şekilde biçimlendirmeyi gösterir.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                 

Aşağıdaki örnek biçimlendirmede hizalama kullanımını gösterir.The following example demonstrates the use of alignment in formatting. Biçimlendirilmiş bağımsız değişkenler, elde edilen hizalamayı vurgulamak için dikey çubuk karakterler (|) arasına yerleştirilir.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   |

Ayrıca bkz.See also