Convert.ToString 方法

定义

将指定的值转换为其等效的字符串表示形式。

重载

ToString(Int32, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 32 位带符号整数的值转换为其等效的字符串表示形式。

ToString(Int16, Int32)

将 16 位带符号整数的值转换为其指定基的等效字符串表示形式。

ToString(DateTime, IFormatProvider)

使用指定的区域性特定格式设置信息将指定的 DateTime 的值转换为其等效的字符串表示形式。

ToString(Double, IFormatProvider)

将指定的双精度浮点数的值转换其等效的字符串表示形式。

ToString(Decimal, IFormatProvider)

使用指定的区域性特定格式设置信息将指定的十进制数的值转换为其等效的字符串表示形式。

ToString(Int32, Int32)

将 32 位带符号整数的值转换为其指定基的等效字符串表示形式。

ToString(Int16, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 16 位带符号整数的值转换为其等效的字符串表示形式。

ToString(Int64, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 64 位带符号整数的值转换为其等效的字符串表示形式。

ToString(Single, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的单精度浮点数的值转换为其等效的字符串表示形式。

ToString(Object, IFormatProvider)

使用指定的区域性特定格式设置信息将指定对象的值转换为其等效的字符串表示形式。

ToString(SByte, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 8 位带符号整数的值转换为其等效的字符串表示形式。

ToString(String, IFormatProvider)

返回指定的字符串实例;不执行任何实际转换。

ToString(UInt16, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 16 位无符号整数的值转换为其等效的字符串表示形式。

ToString(UInt32, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 32 位无符号整数的值转换为其等效的字符串表示形式。

ToString(UInt64, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 64 位无符号整数的值转换为其等效的字符串表示形式。

ToString(Char, IFormatProvider)

使用指定的区域性特定格式设置信息将指定的 Unicode 字符的值转换为其等效的字符串表示形式。

ToString(Int64, Int32)

将 64 位带符号整数的值转换为其指定基的等效字符串表示形式。

ToString(Byte, Int32)

将 8 位无符号整数的值转换为其等效的指定基数的字符串表示形式。

ToString(Boolean, IFormatProvider)

将指定的布尔值转换为其等效的字符串表示形式。

ToString(Byte, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 8 位无符号整数的值转换为其等效的字符串表示形式。

ToString(Boolean)

将指定的布尔值转换为其等效的字符串表示形式。

ToString(Byte)

将指定的 8 位无符号整数的值转换为其等效的字符串表示形式。

ToString(Char)

将指定的 Unicode 字符的值转换为其等效的字符串表示形式。

ToString(DateTime)

将指定的 DateTime 的值转换为其等效的字符串表示形式。

ToString(Double)

将指定的双精度浮点数的值转换其等效的字符串表示形式。

ToString(Int16)

将指定的 16 位带符号整数的值转换为其等效的字符串表示形式。

ToString(Int32)

将指定的 32 位带符号整数的值转换为其等效的字符串表示形式。

ToString(Decimal)

将指定的十进制数的值转换为其等效的字符串表示形式。

ToString(Object)

将指定对象的值转换为其等效的字符串表示形式。

ToString(SByte)

将指定的 8 位带符号整数的值转换为其等效的字符串表示形式。

ToString(Single)

将指定的单精度浮点数的值转换其等效的字符串表示形式。

ToString(String)

返回指定的字符串实例;不执行任何实际转换。

ToString(UInt16)

将指定的 16 位无符号整数的值转换为其等效的字符串表示形式。

ToString(UInt32)

将指定的 32 位无符号整数的值转换为其等效的字符串表示形式。

ToString(UInt64)

将指定的 64 位无符号整数的值转换为其等效的字符串表示形式。

ToString(Int64)

将指定的 64 位带符号整数的值转换为其等效的字符串表示形式。

ToString(Int32, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 32 位带符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(int value, IFormatProvider ^ provider);
public static string ToString (int value, IFormatProvider provider);
public static string ToString (int value, IFormatProvider? provider);
static member ToString : int * IFormatProvider -> string
Public Shared Function ToString (value As Integer, provider As IFormatProvider) As String

参数

value
Int32

要转换的 32 位带符号整数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

示例

以下示例定义一个自定义 NumberFormatInfo 类,该类将其负号定义为字符串“~”,将正符号定义为字符串“!”。 然后,它调用 方法, ToString(Int32, IFormatProvider) 将整数数组中的每个元素转换为其等效的字符串表示形式。 转换使用固定区域性和自定义 NumberFormatInfo 对象。

int[] numbers = { Int32.MinValue, Int32.MaxValue};
System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.NegativeSign = "~";
nfi.PositiveSign = "!";

foreach (int number in numbers)
   Console.WriteLine("{0,-12}  -->  {1,12}",
                     Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture),
                     Convert.ToString(number, nfi));
// The example displays the following output:
//       -2147483648  -->  ~2147483648
//       2147483647  -->  2147483647
let numbers = [| Int32.MinValue; Int32.MaxValue |]
let nfi = NumberFormatInfo()
nfi.NegativeSign <- "~"
nfi.PositiveSign <- "!"

for number in numbers do
    printfn $"{Convert.ToString(number, CultureInfo.InvariantCulture),-12}  -->  {Convert.ToString(number, nfi),12}"
// The example displays the following output:
//       -2147483648  -->  ~2147483648
//       2147483647  -->  2147483647
Dim numbers() As Integer = { Int32.MinValue, Int32.MaxValue}
Dim nfi As New System.Globalization.NumberFormatInfo()
nfi.NegativeSign = "~"
nfi.PositiveSign = "!"

For Each number As Integer In numbers
   Console.WriteLine("{0,-12}  -->  {1,12}", _
                     Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture), _
                     Convert.ToString(number, nfi))
Next
' The example displays the following output:
'       -2147483648  -->  ~2147483648
'       2147483647   -->  2147483647

注解

此实现与 相同 Int32.ToString(IFormatProvider)

适用于

ToString(Int16, Int32)

将 16 位带符号整数的值转换为其指定基的等效字符串表示形式。

public:
 static System::String ^ ToString(short value, int toBase);
public static string ToString (short value, int toBase);
static member ToString : int16 * int -> string
Public Shared Function ToString (value As Short, toBase As Integer) As String

参数

value
Int16

要转换的 16 位带符号整数。

toBase
Int32

返回值的基数,必须是 2、8、10 或 16。

返回

value 为基数的 toBase 的字符串表示形式。

例外

toBase 不是 2、8、10 或 16。

示例

以下示例将 16 位带符号整数数组中的每个元素转换为其等效的二进制、八进制、十进制和十六进制字符串表示形式。

int[] bases = { 2, 8, 10, 16};
short[] numbers = { Int16.MinValue, -13621, -18, 12, 19142, Int16.MaxValue };

foreach (int baseValue in bases)
{
   Console.WriteLine("Base {0} conversion:", baseValue);
   foreach (short number in numbers)
   {
      Console.WriteLine("   {0,-8}  -->  0x{1}",
                        number, Convert.ToString(number, baseValue));
   }
}
// The example displays the following output:
//       Base 2 conversion:
//          -32768    -->  0x1000000000000000
//          -13621    -->  0x1100101011001011
//          -18       -->  0x1111111111101110
//          12        -->  0x1100
//          19142     -->  0x100101011000110
//          32767     -->  0x111111111111111
//       Base 8 conversion:
//          -32768    -->  0x100000
//          -13621    -->  0x145313
//          -18       -->  0x177756
//          12        -->  0x14
//          19142     -->  0x45306
//          32767     -->  0x77777
//       Base 10 conversion:
//          -32768    -->  0x-32768
//          -13621    -->  0x-13621
//          -18       -->  0x-18
//          12        -->  0x12
//          19142     -->  0x19142
//          32767     -->  0x32767
//       Base 16 conversion:
//          -32768    -->  0x8000
//          -13621    -->  0xcacb
//          -18       -->  0xffee
//          12        -->  0xc
//          19142     -->  0x4ac6
//          32767     -->  0x7fff
let bases = [| 2; 8; 10; 16 |]
let numbers = [| Int16.MinValue; -13621s; -18s; 12s; 19142s; Int16.MaxValue |]

for baseValue in bases do
    printfn $"Base {baseValue} conversion:"
    for number in numbers do
        printfn $"   {number,-8}  -->  0x{Convert.ToString(number, baseValue)}"
// The example displays the following output:
//       Base 2 conversion:
//          -32768    -->  0x1000000000000000
//          -13621    -->  0x1100101011001011
//          -18       -->  0x1111111111101110
//          12        -->  0x1100
//          19142     -->  0x100101011000110
//          32767     -->  0x111111111111111
//       Base 8 conversion:
//          -32768    -->  0x100000
//          -13621    -->  0x145313
//          -18       -->  0x177756
//          12        -->  0x14
//          19142     -->  0x45306
//          32767     -->  0x77777
//       Base 10 conversion:
//          -32768    -->  0x-32768
//          -13621    -->  0x-13621
//          -18       -->  0x-18
//          12        -->  0x12
//          19142     -->  0x19142
//          32767     -->  0x32767
//       Base 16 conversion:
//          -32768    -->  0x8000
//          -13621    -->  0xcacb
//          -18       -->  0xffee
//          12        -->  0xc
//          19142     -->  0x4ac6
//          32767     -->  0x7fff
Dim bases() As Integer = { 2, 8, 10, 16}
Dim numbers() As Short = { Int16.MinValue, -13621, -18, 12, 19142, _
                           Int16.MaxValue }

For Each base As Integer In bases
   Console.WriteLine("Base {0} conversion:", base)
   For Each number As Short In numbers
      Console.WriteLine("   {0,-8}  -->  0x{1}", _
                        number, Convert.ToString(number, base))
   Next
Next
' The example displays the following output:
'       Base 2 conversion:
'          -32768    -->  0x1000000000000000
'          -13621    -->  0x1100101011001011
'          -18       -->  0x1111111111101110
'          12        -->  0x1100
'          19142     -->  0x100101011000110
'          32767     -->  0x111111111111111
'       Base 8 conversion:
'          -32768    -->  0x100000
'          -13621    -->  0x145313
'          -18       -->  0x177756
'          12        -->  0x14
'          19142     -->  0x45306
'          32767     -->  0x77777
'       Base 10 conversion:
'          -32768    -->  0x-32768
'          -13621    -->  0x-13621
'          -18       -->  0x-18
'          12        -->  0x12
'          19142     -->  0x19142
'          32767     -->  0x32767
'       Base 16 conversion:
'          -32768    -->  0x8000
'          -13621    -->  0xcacb
'          -18       -->  0xffee
'          12        -->  0xc
'          19142     -->  0x4ac6
'          32767     -->  0x7fff
let bases = [2; 8; 10; 16]
let numbers = [ Int16.MinValue; -13621s; -18s; 12s; 19142s; Int16.MaxValue ]

for baseValue in bases do
    printfn "Base %i conversion:" baseValue
    for number in numbers do
        printfn "   % -8i  -->  0x%s" number (Convert.ToString (number, baseValue))
// The example displays the following output:
//     Base 2 conversion:
//        -32768    -->  0x1000000000000000
//        -13621    -->  0x1100101011001011
//        -18       -->  0x1111111111101110
//         12       -->  0x1100
//         19142    -->  0x100101011000110
//         32767    -->  0x111111111111111
//     Base 8 conversion:
//        -32768    -->  0x100000
//        -13621    -->  0x145313
//        -18       -->  0x177756
//         12       -->  0x14
//         19142    -->  0x45306
//         32767    -->  0x77777
//     Base 10 conversion:
//        -32768    -->  0x-32768
//        -13621    -->  0x-13621
//        -18       -->  0x-18
//         12       -->  0x12
//         19142    -->  0x19142
//         32767    -->  0x32767
//     Base 16 conversion:
//        -32768    -->  0x8000
//        -13621    -->  0xcacb
//        -18       -->  0xffee
//         12       -->  0xc
//         19142    -->  0x4ac6
//         32767    -->  0x7fff

注解

如果 value 为正并且 toBase 为 2、8 或 16,则返回的字符串使用符号和数量级表示形式。 如果 value 为负数且 toBase 为 2、8 或 16,则返回的字符串使用二的补数表示形式。 这意味着高阶字节 (位 15) 的高位位被解释为符号位。 ToString(Int16, Int32)如果调用 方法以创建稍后将转换回数字的字符串,则应调用采用类似数值表示形式的相应方法来执行转换。 此类方法包括 Convert.ToInt16(String, Int32)Int16.Parse(String, NumberStyles)

适用于

ToString(DateTime, IFormatProvider)

使用指定的区域性特定格式设置信息将指定的 DateTime 的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(DateTime value, IFormatProvider ^ provider);
public static string ToString (DateTime value, IFormatProvider provider);
public static string ToString (DateTime value, IFormatProvider? provider);
static member ToString : DateTime * IFormatProvider -> string
Public Shared Function ToString (value As DateTime, provider As IFormatProvider) As String

参数

value
DateTime

要转换的日期和时间值。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

示例

以下示例在八个不同的区域性中将值 DateTime 转换为其等效的字符串表示形式。

// Specify the date to be formatted using various cultures.
DateTime tDate = new DateTime(2010, 4, 15, 20, 30, 40, 333);
// Specify the cultures.
string[] cultureNames = { "en-US", "es-AR", "fr-FR", "hi-IN",
                          "ja-JP", "nl-NL", "ru-RU", "ur-PK" };

Console.WriteLine("Converting the date {0}: ",
                  Convert.ToString(tDate,
                          System.Globalization.CultureInfo.InvariantCulture));

foreach (string cultureName in cultureNames)
{
   System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(cultureName);
   string dateString = Convert.ToString(tDate, culture);
   Console.WriteLine("   {0}:  {1,-12}",
                     culture.Name, dateString);
}
// The example displays the following output:
//       Converting the date 04/15/2010 20:30:40:
//          en-US:  4/15/2010 8:30:40 PM
//          es-AR:  15/04/2010 08:30:40 p.m.
//          fr-FR:  15/04/2010 20:30:40
//          hi-IN:  15-04-2010 20:30:40
//          ja-JP:  2010/04/15 20:30:40
//          nl-NL:  15-4-2010 20:30:40
//          ru-RU:  15.04.2010 20:30:40
//          ur-PK:  15/04/2010 8:30:40 PM
// Specify the date to be formatted using various cultures.
let tDate = DateTime(2010, 4, 15, 20, 30, 40, 333)
// Specify the cultures.
let cultureNames = 
    [| "en-US"; "es-AR"; "fr-FR"; "hi-IN";
        "ja-JP"; "nl-NL"; "ru-RU"; "ur-PK" |]

printfn $"Converting the date {Convert.ToString(tDate, CultureInfo.InvariantCulture)}: "

for cultureName in cultureNames do
    let culture = CultureInfo cultureName
    let dateString = Convert.ToString(tDate, culture)
    printfn $"   {culture.Name}:  {dateString,-12}"
// The example displays the following output:
//       Converting the date 04/15/2010 20:30:40:
//          en-US:  4/15/2010 8:30:40 PM
//          es-AR:  15/04/2010 08:30:40 p.m.
//          fr-FR:  15/04/2010 20:30:40
//          hi-IN:  15-04-2010 20:30:40
//          ja-JP:  2010/04/15 20:30:40
//          nl-NL:  15-4-2010 20:30:40
//          ru-RU:  15.04.2010 20:30:40
//          ur-PK:  15/04/2010 8:30:40 PM
' Specify the date to be formatted using various cultures.
Dim tDate As New Date(2010, 4, 15, 20, 30, 40, 333)
' Specify the cultures.
Dim cultureNames() As String = { "en-US", "es-AR", "fr-FR", "hi-IN", _
                                 "ja-JP", "nl-NL", "ru-RU", "ur-PK" }

Console.WriteLine("Converting the date {0}: ", _
                  Convert.ToString(tDate, _
                          System.Globalization.CultureInfo.InvariantCulture))

For Each cultureName As String In CultureNames
   Dim culture As New System.Globalization.CultureInfo(cultureName)
   Dim dateString As String = Convert.ToString(tDate, culture)
   Console.WriteLine("   {0}:  {1,-12}", _
                     culture.Name, dateString)
Next             
' The example displays the following output:
'       Converting the date 04/15/2010 20:30:40:
'          en-US:  4/15/2010 8:30:40 PM
'          es-AR:  15/04/2010 08:30:40 p.m.
'          fr-FR:  15/04/2010 20:30:40
'          hi-IN:  15-04-2010 20:30:40
'          ja-JP:  2010/04/15 20:30:40
'          nl-NL:  15-4-2010 20:30:40
'          ru-RU:  15.04.2010 20:30:40
'          ur-PK:  15/04/2010 8:30:40 PM

注解

此实现与 相同 DateTime.ToString(IFormatProvider)

适用于

ToString(Double, IFormatProvider)

将指定的双精度浮点数的值转换其等效的字符串表示形式。

public:
 static System::String ^ ToString(double value, IFormatProvider ^ provider);
public static string ToString (double value, IFormatProvider provider);
public static string ToString (double value, IFormatProvider? provider);
static member ToString : double * IFormatProvider -> string
Public Shared Function ToString (value As Double, provider As IFormatProvider) As String

参数

value
Double

要转换的双精度浮点数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

示例

以下示例将值数组 Double 中的每个元素转换为四个不同区域性中的等效字符串表示形式。

// Define an array of numbers to display.
double[] numbers = { -1.5345e16, -123.4321, 19092.123, 1.1734231911290e16 };
// Define the culture names used to display them.
string[] cultureNames = { "en-US", "fr-FR", "ja-JP", "ru-RU" };

foreach (double number in numbers)
{
   Console.WriteLine("{0}:", Convert.ToString(number,
                             System.Globalization.CultureInfo.InvariantCulture));
   foreach (string cultureName in cultureNames)
   {
      System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(cultureName);
      Console.WriteLine("   {0}: {1,20}",
                        culture.Name, Convert.ToString(number, culture));
   }
   Console.WriteLine();
}
// The example displays the following output:
//    -1.5345E+16:
//       en-US:          -1.5345E+16
//       fr-FR:          -1,5345E+16
//       ja-JP:          -1.5345E+16
//       ru-RU:          -1,5345E+16
//
//    -123.4321:
//       en-US:            -123.4321
//       fr-FR:            -123,4321
//       ja-JP:            -123.4321
//       ru-RU:            -123,4321
//
//    19092.123:
//       en-US:            19092.123
//       fr-FR:            19092,123
//       ja-JP:            19092.123
//       ru-RU:            19092,123
//
//    1.173423191129E+16:
//       en-US:   1.173423191129E+16
//       fr-FR:   1,173423191129E+16
//       ja-JP:   1.173423191129E+16
//       ru-RU:   1,173423191129E+16
// Define an array of numbers to display.
let numbers = [| -1.5345e16; -123.4321; 19092.123; 1.1734231911290e16 |]
// Define the culture names used to display them.
let cultureNames = [| "en-US"; "fr-FR"; "ja-JP"; "ru-RU" |]

for number in numbers do
    printfn $"{Convert.ToString(number, CultureInfo.InvariantCulture)}:"
    for cultureName in cultureNames do
        let culture = CultureInfo cultureName
        printfn "   {culture.Name}: {Convert.ToString(number, culture),20}"
    printfn ""
// The example displays the following output:
//    -1.5345E+16:
//       en-US:          -1.5345E+16
//       fr-FR:          -1,5345E+16
//       ja-JP:          -1.5345E+16
//       ru-RU:          -1,5345E+16
//
//    -123.4321:
//       en-US:            -123.4321
//       fr-FR:            -123,4321
//       ja-JP:            -123.4321
//       ru-RU:            -123,4321
//
//    19092.123:
//       en-US:            19092.123
//       fr-FR:            19092,123
//       ja-JP:            19092.123
//       ru-RU:            19092,123
//
//    1.173423191129E+16:
//       en-US:   1.173423191129E+16
//       fr-FR:   1,173423191129E+16
//       ja-JP:   1.173423191129E+16
//       ru-RU:   1,173423191129E+16
' Define an array of numbers to display.
Dim numbers() As Double = { -1.5345e16, -123.4321, 19092.123, _
                            1.1734231911290e16 }
' Define the culture names used to display them.
Dim cultureNames() As String = { "en-US", "fr-FR", "ja-JP", "ru-RU" }

For Each number As Double In numbers
   Console.WriteLine("{0}:", Convert.ToString(number, _
                             System.Globalization.CultureInfo.InvariantCulture))
   For Each cultureName As String In cultureNames
      Dim culture As New System.Globalization.CultureInfo(cultureName)
      Console.WriteLine("   {0}: {1,20}", _
                        culture.Name, Convert.ToString(number, culture))
   Next
   Console.WriteLine()
Next   
' The example displays the following output:
'    -1.5345E+16:
'       en-US:          -1.5345E+16
'       fr-FR:          -1,5345E+16
'       ja-JP:          -1.5345E+16
'       ru-RU:          -1,5345E+16
'    
'    -123.4321:
'       en-US:            -123.4321
'       fr-FR:            -123,4321
'       ja-JP:            -123.4321
'       ru-RU:            -123,4321
'    
'    19092.123:
'       en-US:            19092.123
'       fr-FR:            19092,123
'       ja-JP:            19092.123
'       ru-RU:            19092,123
'    
'    1.173423191129E+16:
'       en-US:   1.173423191129E+16
'       fr-FR:   1,173423191129E+16
'       ja-JP:   1.173423191129E+16
'       ru-RU:   1,173423191129E+16

注解

此实现与 Double.ToString(IFormatProvider)

适用于

ToString(Decimal, IFormatProvider)

使用指定的区域性特定格式设置信息将指定的十进制数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::Decimal value, IFormatProvider ^ provider);
public static string ToString (decimal value, IFormatProvider provider);
public static string ToString (decimal value, IFormatProvider? provider);
static member ToString : decimal * IFormatProvider -> string
Public Shared Function ToString (value As Decimal, provider As IFormatProvider) As String

参数

value
Decimal

要转换的十进制数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

示例

以下示例将值数组 Decimal 中的每个元素转换为四个不同区域性中的等效字符串表示形式。

// Define an array of numbers to display.
decimal[] numbers = { 1734231911290.16m, -17394.32921m,
                      3193.23m, 98012368321.684m };
// Define the culture names used to display them.
string[] cultureNames = { "en-US", "fr-FR", "ja-JP", "ru-RU" };

foreach (decimal number in numbers)
{
   Console.WriteLine("{0}:", Convert.ToString(number,
                             System.Globalization.CultureInfo.InvariantCulture));
   foreach (string cultureName in cultureNames)
   {
      System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(cultureName);
      Console.WriteLine("   {0}: {1,20}",
                        culture.Name, Convert.ToString(number, culture));
   }
   Console.WriteLine();
}
// The example displays the following output:
//    1734231911290.16:
//       en-US:     1734231911290.16
//       fr-FR:     1734231911290,16
//       ja-JP:     1734231911290.16
//       ru-RU:     1734231911290,16
//
//    -17394.32921:
//       en-US:         -17394.32921
//       fr-FR:         -17394,32921
//       ja-JP:         -17394.32921
//       ru-RU:         -17394,32921
//
//    3193.23:
//       en-US:              3193.23
//       fr-FR:              3193,23
//       ja-JP:              3193.23
//       ru-RU:              3193,23
//
//    98012368321.684:
//       en-US:      98012368321.684
//       fr-FR:      98012368321,684
//       ja-JP:      98012368321.684
//       ru-RU:      98012368321,684
// Define an array of numbers to display.
let numbers = 
    [| 1734231911290.16m; -17394.32921m; 3193.23m; 98012368321.684m |]
// Define the culture names used to display them.
let cultureNames = [| "en-US"; "fr-FR"; "ja-JP"; "ru-RU" |]

for number in numbers do
    printfn $"{Convert.ToString(number, CultureInfo.InvariantCulture)}:"
    for cultureName in cultureNames do
        let culture = CultureInfo cultureName
        printfn $"   {culture.Name}: {Convert.ToString(number, culture),20}"
    printfn ""
// The example displays the following output:
//    1734231911290.16:
//       en-US:     1734231911290.16
//       fr-FR:     1734231911290,16
//       ja-JP:     1734231911290.16
//       ru-RU:     1734231911290,16
//
//    -17394.32921:
//       en-US:         -17394.32921
//       fr-FR:         -17394,32921
//       ja-JP:         -17394.32921
//       ru-RU:         -17394,32921
//
//    3193.23:
//       en-US:              3193.23
//       fr-FR:              3193,23
//       ja-JP:              3193.23
//       ru-RU:              3193,23
//
//    98012368321.684:
//       en-US:      98012368321.684
//       fr-FR:      98012368321,684
//       ja-JP:      98012368321.684
//       ru-RU:      98012368321,684
' Define an array of numbers to display.
Dim numbers() As Decimal = { 1734231911290.16d, -17394.32921d, _
                             3193.23d, 98012368321.684d }
' Define the culture names used to display them.
Dim cultureNames() As String = { "en-US", "fr-FR", "ja-JP", "ru-RU" }

For Each number As Decimal In numbers
   Console.WriteLine("{0}:", Convert.ToString(number, _
                             System.Globalization.CultureInfo.InvariantCulture))
   For Each cultureName As String In cultureNames
      Dim culture As New System.Globalization.CultureInfo(cultureName)
      Console.WriteLine("   {0}: {1,20}", _
                        culture.Name, Convert.ToString(number, culture))
   Next
   Console.WriteLine()
Next   
' The example displays the following output:
'    1734231911290.16:
'       en-US:     1734231911290.16
'       fr-FR:     1734231911290,16
'       ja-JP:     1734231911290.16
'       ru-RU:     1734231911290,16
'    
'    -17394.32921:
'       en-US:         -17394.32921
'       fr-FR:         -17394,32921
'       ja-JP:         -17394.32921
'       ru-RU:         -17394,32921
'    
'    3193.23:
'       en-US:              3193.23
'       fr-FR:              3193,23
'       ja-JP:              3193.23
'       ru-RU:              3193,23
'    
'    98012368321.684:
'       en-US:      98012368321.684
'       fr-FR:      98012368321,684
'       ja-JP:      98012368321.684
'       ru-RU:      98012368321,684

注解

此实现与 相同 Decimal.ToString(IFormatProvider)

适用于

ToString(Int32, Int32)

将 32 位带符号整数的值转换为其指定基的等效字符串表示形式。

public:
 static System::String ^ ToString(int value, int toBase);
public static string ToString (int value, int toBase);
static member ToString : int * int -> string
Public Shared Function ToString (value As Integer, toBase As Integer) As String

参数

value
Int32

要转换的 32 位带符号整数。

toBase
Int32

返回值的基数,必须是 2、8、10 或 16。

返回

value 为基数的 toBase 的字符串表示形式。

例外

toBase 不是 2、8、10 或 16。

示例

以下示例将整数数组中的每个元素转换为其等效的二进制、十六进制、十六进制和十六进制字符串表示形式。

int[] bases = { 2, 8, 10, 16};
int[] numbers = { Int32.MinValue, -19327543, -13621, -18, 12,
                             19142, Int32.MaxValue };

foreach (int baseValue in bases)
{
   Console.WriteLine("Base {0} conversion:", baseValue);
   foreach (int number in numbers)
   {
      Console.WriteLine("   {0,-15}  -->  0x{1}",
                        number, Convert.ToString(number, baseValue));
   }
}
// The example displays the following output:
//    Base 2 conversion:
//       -2147483648      -->  0x10000000000000000000000000000000
//       -19327543        -->  0x11111110110110010001010111001001
//       -13621           -->  0x11111111111111111100101011001011
//       -18              -->  0x11111111111111111111111111101110
//       12               -->  0x1100
//       19142            -->  0x100101011000110
//       2147483647       -->  0x1111111111111111111111111111111
//    Base 8 conversion:
//       -2147483648      -->  0x20000000000
//       -19327543        -->  0x37666212711
//       -13621           -->  0x37777745313
//       -18              -->  0x37777777756
//       12               -->  0x14
//       19142            -->  0x45306
//       2147483647       -->  0x17777777777
//    Base 10 conversion:
//       -2147483648      -->  0x-2147483648
//       -19327543        -->  0x-19327543
//       -13621           -->  0x-13621
//       -18              -->  0x-18
//       12               -->  0x12
//       19142            -->  0x19142
//       2147483647       -->  0x2147483647
//    Base 16 conversion:
//       -2147483648      -->  0x80000000
//       -19327543        -->  0xfed915c9
//       -13621           -->  0xffffcacb
//       -18              -->  0xffffffee
//       12               -->  0xc
//       19142            -->  0x4ac6
//       2147483647       -->  0x7fffffff
let bases = [| 2; 8; 10; 16 |]
let numbers = 
    [| Int32.MinValue; -19327543; -13621; -18; 12; 19142; Int32.MaxValue |]

for baseValue in bases do
    printfn $"Base {baseValue} conversion:"
    for number in numbers do
        printfn $"   {number,-15}  -->  0x{Convert.ToString(number, baseValue)}"
// The example displays the following output:
//    Base 2 conversion:
//       -2147483648      -->  0x10000000000000000000000000000000
//       -19327543        -->  0x11111110110110010001010111001001
//       -13621           -->  0x11111111111111111100101011001011
//       -18              -->  0x11111111111111111111111111101110
//       12               -->  0x1100
//       19142            -->  0x100101011000110
//       2147483647       -->  0x1111111111111111111111111111111
//    Base 8 conversion:
//       -2147483648      -->  0x20000000000
//       -19327543        -->  0x37666212711
//       -13621           -->  0x37777745313
//       -18              -->  0x37777777756
//       12               -->  0x14
//       19142            -->  0x45306
//       2147483647       -->  0x17777777777
//    Base 10 conversion:
//       -2147483648      -->  0x-2147483648
//       -19327543        -->  0x-19327543
//       -13621           -->  0x-13621
//       -18              -->  0x-18
//       12               -->  0x12
//       19142            -->  0x19142
//       2147483647       -->  0x2147483647
//    Base 16 conversion:
//       -2147483648      -->  0x80000000
//       -19327543        -->  0xfed915c9
//       -13621           -->  0xffffcacb
//       -18              -->  0xffffffee
//       12               -->  0xc
//       19142            -->  0x4ac6
//       2147483647       -->  0x7fffffff
Dim bases() As Integer = { 2, 8, 10, 16}
Dim numbers() As Integer = { Int32.MinValue, -19327543, -13621, -18, 12, _
                             19142, Int32.MaxValue }

For Each base As Integer In bases
   Console.WriteLine("Base {0} conversion:", base)
   For Each number As Integer In numbers
      Console.WriteLine("   {0,-15}  -->  0x{1}", _
                        number, Convert.ToString(number, base))
   Next
Next
' The example displays the following output:
'    Base 2 conversion:
'       -2147483648      -->  0x10000000000000000000000000000000
'       -19327543        -->  0x11111110110110010001010111001001
'       -13621           -->  0x11111111111111111100101011001011
'       -18              -->  0x11111111111111111111111111101110
'       12               -->  0x1100
'       19142            -->  0x100101011000110
'       2147483647       -->  0x1111111111111111111111111111111
'    Base 8 conversion:
'       -2147483648      -->  0x20000000000
'       -19327543        -->  0x37666212711
'       -13621           -->  0x37777745313
'       -18              -->  0x37777777756
'       12               -->  0x14
'       19142            -->  0x45306
'       2147483647       -->  0x17777777777
'    Base 10 conversion:
'       -2147483648      -->  0x-2147483648
'       -19327543        -->  0x-19327543
'       -13621           -->  0x-13621
'       -18              -->  0x-18
'       12               -->  0x12
'       19142            -->  0x19142
'       2147483647       -->  0x2147483647
'    Base 16 conversion:
'       -2147483648      -->  0x80000000
'       -19327543        -->  0xfed915c9
'       -13621           -->  0xffffcacb
'       -18              -->  0xffffffee
'       12               -->  0xc
'       19142            -->  0x4ac6
'       2147483647       -->  0x7fffffff
let bases = [2; 8; 10; 16]
let numbers = [ Int32.MinValue; -19327543; -13621; -18; 12; 19142; Int32.MaxValue ]

for baseValue in bases do
    printfn "Base %i conversion:" baseValue
    for number in numbers do
        printfn "   % -15i  -->  0x%s" number (Convert.ToString (number, baseValue))
// The example displays the following output:
//     Base 2 conversion:
//        -2147483648      -->  0x10000000000000000000000000000000
//        -19327543        -->  0x11111110110110010001010111001001
//        -13621           -->  0x11111111111111111100101011001011
//        -18              -->  0x11111111111111111111111111101110
//         12              -->  0x1100
//         19142           -->  0x100101011000110
//         2147483647      -->  0x1111111111111111111111111111111
//     Base 8 conversion:
//        -2147483648      -->  0x20000000000
//        -19327543        -->  0x37666212711
//        -13621           -->  0x37777745313
//        -18              -->  0x37777777756
//         12              -->  0x14
//         19142           -->  0x45306
//         2147483647      -->  0x17777777777
//     Base 10 conversion:
//        -2147483648      -->  0x-2147483648
//        -19327543        -->  0x-19327543
//        -13621           -->  0x-13621
//        -18              -->  0x-18
//         12              -->  0x12
//         19142           -->  0x19142
//         2147483647      -->  0x2147483647
//     Base 16 conversion:
//        -2147483648      -->  0x80000000
//        -19327543        -->  0xfed915c9
//        -13621           -->  0xffffcacb
//        -18              -->  0xffffffee
//         12              -->  0xc
//         19142           -->  0x4ac6
//         2147483647      -->  0x7fffffff

注解

如果 value 为正并且 toBase 为 2、8 或 16,则返回的字符串使用符号和数量级表示形式。 如果 value 为负数且 toBase 为 2、8 或 16,则返回的字符串使用二的补数表示形式。 这意味着,最高阶字节 (位 31) 的高位位被解释为符号位。 ToString(Int32, Int32)如果调用 方法以创建稍后将转换回数字的字符串,则应调用采用类似数值表示形式的相应方法来执行转换。 此类方法包括 Convert.ToInt32(String, Int32)Int32.Parse(String, NumberStyles)

适用于

ToString(Int16, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 16 位带符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(short value, IFormatProvider ^ provider);
public static string ToString (short value, IFormatProvider provider);
public static string ToString (short value, IFormatProvider? provider);
static member ToString : int16 * IFormatProvider -> string
Public Shared Function ToString (value As Short, provider As IFormatProvider) As String

参数

value
Int16

要转换的 16 位带符号整数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

示例

以下示例定义一个自定义 NumberFormatInfo 类,该类将其负号定义为字符串“~”,将正符号定义为字符串“!”。 然后,它调用 方法, ToString(Int16, IFormatProvider) 将 16 位整数数组中的每个元素转换为其等效的字符串表示形式。 转换使用固定区域性和自定义 NumberFormatInfo 对象。

short[] numbers = { Int16.MinValue, Int16.MaxValue};
System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.NegativeSign = "~";
nfi.PositiveSign = "!";

foreach (short number in numbers)
   Console.WriteLine("{0,-8}  -->  {1,8}",
                     Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture),
                     Convert.ToString(number, nfi));
// The example displays the following output:
//       -32768    -->    ~32768
//       32767     -->     32767
let numbers = [| Int16.MinValue; Int16.MaxValue |]
let nfi = NumberFormatInfo()
nfi.NegativeSign <- "~"
nfi.PositiveSign <- "!"

for number in numbers do
    printfn $"{Convert.ToString(number, CultureInfo.InvariantCulture),-8}  -->  {Convert.ToString(number, nfi),8}"
// The example displays the following output:
//       -32768    -->    ~32768
//       32767     -->     32767
Dim numbers() As Short = { Int16.MinValue, Int16.MaxValue}
Dim nfi As New System.Globalization.NumberFormatInfo()
nfi.NegativeSign = "~"
nfi.PositiveSign = "!"

For Each number As Short In numbers
   Console.WriteLine("{0,-8}  -->  {1,8}", _
                     Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture), _
                     Convert.ToString(number, nfi))
Next
' The example displays the following output:
'       -32768    -->    ~32768
'       32767     -->     32767

注解

此实现与 相同 Int16.ToString(IFormatProvider)

适用于

ToString(Int64, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 64 位带符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(long value, IFormatProvider ^ provider);
public static string ToString (long value, IFormatProvider provider);
public static string ToString (long value, IFormatProvider? provider);
static member ToString : int64 * IFormatProvider -> string
Public Shared Function ToString (value As Long, provider As IFormatProvider) As String

参数

value
Int64

要转换的 64 位带符号整数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

示例

以下示例定义一个自定义 NumberFormatInfo 类,该类将其负号定义为字符串“~”,将正符号定义为字符串“!”。 然后,它调用 方法, ToString(Int64, IFormatProvider) 将长整型数组中的每个元素转换为其等效的字符串表示形式。 转换使用固定区域性和自定义 NumberFormatInfo 对象。

long[] numbers = { ((long) Int32.MinValue) * 2, ((long) Int32.MaxValue) * 2};
System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.NegativeSign = "~";
nfi.PositiveSign = "!";

foreach (long number in numbers)
   Console.WriteLine("{0,-12}  -->  {1,12}",
                     Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture),
                     Convert.ToString(number, nfi));
// The example displays the following output:
//       -4294967296  -->  ~4294967296
//       4294967294  -->  4294967294
let numbers = [| (int64 Int32.MinValue) * 2L; (int64 Int32.MaxValue) * 2L |]
let nfi = NumberFormatInfo()
nfi.NegativeSign <- "~"
nfi.PositiveSign <- "!"

for number in numbers do
    printfn $"{Convert.ToString(number, CultureInfo.InvariantCulture),-12}  -->  {Convert.ToString(number, nfi),12}"
// The example displays the following output:
//       -4294967296  -->  ~4294967296
//       4294967294  -->  4294967294
Dim numbers() As Long = { CLng(Int32.MinValue) * 2, CLng(Int32.MaxValue) * 2 }
Dim nfi As New System.Globalization.NumberFormatInfo()
nfi.NegativeSign = "~"
nfi.PositiveSign = "!"

For Each number As Long In numbers
   Console.WriteLine("{0,-12}  -->  {1,12}", _
                     Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture), _
                     Convert.ToString(number, nfi))
Next
' The example displays the following output:
'       -4294967296  -->  ~4294967296
'       4294967294   -->  4294967294

注解

此实现与 相同 Int64.ToString(IFormatProvider)

适用于

ToString(Single, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的单精度浮点数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(float value, IFormatProvider ^ provider);
public static string ToString (float value, IFormatProvider provider);
public static string ToString (float value, IFormatProvider? provider);
static member ToString : single * IFormatProvider -> string
Public Shared Function ToString (value As Single, provider As IFormatProvider) As String

参数

value
Single

要转换的单精度浮点数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

示例

以下示例将值数组 Single 中的每个元素转换为四个不同区域性中的等效字符串表示形式。

// Define an array of numbers to display.
float[] numbers = { -1.5345e16f, -123.4321f, 19092.123f, 1.1734231911290e16f };
// Define the culture names used to display them.
string[] cultureNames = { "en-US", "fr-FR", "ja-JP", "ru-RU" };

foreach (float number in numbers)
{
   Console.WriteLine("{0}:", Convert.ToString(number,
                             System.Globalization.CultureInfo.InvariantCulture));
   foreach (string cultureName in cultureNames)
   {
      System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(cultureName);
      Console.WriteLine("   {0}: {1,20}",
                        culture.Name, Convert.ToString(number, culture));
   }
   Console.WriteLine();
}
// The example displays the following output:
//    -1.5345E+16:
//       en-US:          -1.5345E+16
//       fr-FR:          -1,5345E+16
//       ja-JP:          -1.5345E+16
//       ru-RU:          -1,5345E+16
//
//    -123.4321:
//       en-US:            -123.4321
//       fr-FR:            -123,4321
//       ja-JP:            -123.4321
//       ru-RU:            -123,4321
//
//    19092.123:
//       en-US:            19092.123
//       fr-FR:            19092,123
//       ja-JP:            19092.123
//       ru-RU:            19092,123
//
//    1.173423191129E+16:
//       en-US:   1.173423191129E+16
//       fr-FR:   1,173423191129E+16
//       ja-JP:   1.173423191129E+16
//       ru-RU:   1,173423191129E+16
// Define an array of numbers to display.
let numbers = [| -1.5345e16f; -123.4321f; 19092.123f; 1.1734231911290e16f |]
// Define the culture names used to display them.
let cultureNames = [| "en-US"; "fr-FR"; "ja-JP"; "ru-RU" |]

for number in numbers do
    printfn $"{Convert.ToString(number, CultureInfo.InvariantCulture)}:"
    for cultureName in cultureNames do
        let culture = CultureInfo cultureName
        printfn $"   {culture.Name}: {Convert.ToString(number, culture),20}"
    printfn ""
// The example displays the following output:
//    -1.5345E+16:
//       en-US:          -1.5345E+16
//       fr-FR:          -1,5345E+16
//       ja-JP:          -1.5345E+16
//       ru-RU:          -1,5345E+16
//
//    -123.4321:
//       en-US:            -123.4321
//       fr-FR:            -123,4321
//       ja-JP:            -123.4321
//       ru-RU:            -123,4321
//
//    19092.123:
//       en-US:            19092.123
//       fr-FR:            19092,123
//       ja-JP:            19092.123
//       ru-RU:            19092,123
//
//    1.173423191129E+16:
//       en-US:   1.173423191129E+16
//       fr-FR:   1,173423191129E+16
//       ja-JP:   1.173423191129E+16
//       ru-RU:   1,173423191129E+16
' Define an array of numbers to display.
Dim numbers() As Single = { -1.5345e16, -123.4321, 19092.123, _
                            1.1734231911290e16 }
' Define the culture names used to display them.
Dim cultureNames() As String = { "en-US", "fr-FR", "ja-JP", "ru-RU" }

For Each number As Single In numbers
   Console.WriteLine("{0}:", Convert.ToString(number, _
                             System.Globalization.CultureInfo.InvariantCulture))
   For Each cultureName As String In cultureNames
      Dim culture As New System.Globalization.CultureInfo(cultureName)
      Console.WriteLine("   {0}: {1,20}", _
                        culture.Name, Convert.ToString(number, culture))
   Next
   Console.WriteLine()
Next   
' The example displays the following output:
'    -1.5345E+16:
'       en-US:          -1.5345E+16
'       fr-FR:          -1,5345E+16
'       ja-JP:          -1.5345E+16
'       ru-RU:          -1,5345E+16
'    
'    -123.4321:
'       en-US:            -123.4321
'       fr-FR:            -123,4321
'       ja-JP:            -123.4321
'       ru-RU:            -123,4321
'    
'    19092.123:
'       en-US:            19092.123
'       fr-FR:            19092,123
'       ja-JP:            19092.123
'       ru-RU:            19092,123
'    
'    1.173423191129E+16:
'       en-US:   1.173423191129E+16
'       fr-FR:   1,173423191129E+16
'       ja-JP:   1.173423191129E+16
'       ru-RU:   1,173423191129E+16

注解

此实现与 相同 Single.ToString(IFormatProvider)

适用于

ToString(Object, IFormatProvider)

使用指定的区域性特定格式设置信息将指定对象的值转换为其等效的字符串表示形式。

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

参数

value
Object

一个对象,用于提供要转换的值,或 null

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式;如果 Empty 是一个值为 value 的对象,则为 null。 如果 valuenull,则此方法返回 null

示例

下面的示例定义了一个 Temperature 类,该类替代 Object.ToString 方法,但不实现 IConvertible 接口。 该示例演示了如何调用 Convert.ToString(Object, IFormatProvider) 方法,进而调用 Temperature.ToString 方法。

using System;

public class Temperature
{
   private decimal m_Temp;

   public Temperature(decimal temperature)
   {
      this.m_Temp = temperature;
   }

   public decimal Celsius
   {
      get { return this.m_Temp; }
   }

   public decimal Kelvin
   {
      get { return this.m_Temp + 273.15m; }
   }

   public decimal Fahrenheit
   {
      get { return Math.Round((decimal) (this.m_Temp * 9 / 5 + 32), 2); }
   }

   public override string ToString()
   {
      return m_Temp.ToString("N2") + " °C";
   }
}

public class Example
{
   public static void Main()
   {
      Temperature cold = new Temperature(-40);
      Temperature freezing = new Temperature(0);
      Temperature boiling = new Temperature(100);

      Console.WriteLine(Convert.ToString(cold, null));
      Console.WriteLine(Convert.ToString(freezing, null));
      Console.WriteLine(Convert.ToString(boiling, null));
   }
}
// The example dosplays the following output:
//       -40.00 °C
//       0.00 °C
//       100.00 °C
open System

type Temperature(temperature: decimal) =
    member _.Celsius =
        temperature

    member _.Kelvin =
        temperature + 273.15m

    member _.Fahrenheit =
        Math.Round(temperature * 9m / 5m + 32m |> decimal, 2)

    override _.ToString() =
        temperature.ToString("N2") + " °C"

let cold = Temperature -40
let freezing = Temperature 0
let boiling = Temperature 100

printfn $"{Convert.ToString(cold, null)}"
printfn $"{Convert.ToString(freezing, null)}"
printfn $"{Convert.ToString(boiling, null)}"
// The example dosplays the following output:
//       -40.00 °C
//       0.00 °C
//       100.00 °C
Public Class Temperature 
   Private m_Temp As Decimal

   Public Sub New(temperature As Decimal)
      Me.m_Temp = temperature
   End Sub
   
   Public ReadOnly Property Celsius() As Decimal
      Get
         Return Me.m_Temp
      End Get   
   End Property
   
   Public ReadOnly Property Kelvin() As Decimal
      Get
         Return Me.m_Temp + 273.15d   
      End Get
   End Property
   
   Public ReadOnly Property Fahrenheit() As Decimal
      Get
         Return Math.Round(CDec(Me.m_Temp * 9 / 5 + 32), 2)
      End Get      
   End Property
   
   Public Overrides Function ToString() As String
      Return m_Temp.ToString("N2") & " °C"
   End Function
End Class

Module Example
   Public Sub Main()
      Dim cold As New Temperature(-40)
      Dim freezing As New Temperature(0)
      Dim boiling As New Temperature(100)
      
      Console.WriteLine(Convert.ToString(cold, Nothing))
      Console.WriteLine(Convert.ToString(freezing, Nothing))
      Console.WriteLine(Convert.ToString(boiling, Nothing))
   End Sub
End Module
' The example displays the following output:
'       -40.00 °C
'       0.00 °C
'       100.00 °C

下面的示例定义了一个 Temperature 实现 IFormattable 接口但不实现 接口的 IConvertible 类。 其 IFormattable.ToString 实现表示 Temperature 以摄氏度、华氏度或开氏度为单位的值,具体取决于格式字符串。 该示例还定义了一个TemperatureProvider类,该类实现IFormatProvider并提供由 类的Temperature实现使用的IFormattable随机生成的格式字符串。

using System;

public class Temperature : IFormattable
{
   private decimal m_Temp;

   public Temperature(decimal temperature)
   {
      this.m_Temp = temperature;
   }

   public decimal Celsius
   { get { return this.m_Temp; } }

   public decimal Kelvin
   { get { return this.m_Temp + 273.15m; } }

   public decimal Fahrenheit
   {  get { return Math.Round(this.m_Temp * 9m / 5m + 32m, 2); } }

   public override String ToString()
   {
      return ToString("G", null);
   }

   public String ToString(String fmt, IFormatProvider provider)
   {
      TemperatureProvider formatter = null;
      if (provider != null)
         formatter = provider.GetFormat(typeof(TemperatureProvider))
                                       as TemperatureProvider;

      if (String.IsNullOrWhiteSpace(fmt)) {
         if (formatter != null)
            fmt = formatter.Format;
         else
            fmt = "G";
      }

      switch (fmt.ToUpper()) {
         case "G":
         case "C":
            return m_Temp.ToString("N2") + " °C";
         case "F":
            return Fahrenheit.ToString("N2") + " °F";
         case "K":
            return Kelvin.ToString("N2") + " K";
         default:
            throw new FormatException(String.Format("'{0}' is not a valid format specifier.", fmt));
      }
   }
}

public class TemperatureProvider : IFormatProvider
{
   private String[] fmtStrings = { "C", "G", "F", "K" };
   private Random rnd = new Random();

   public Object GetFormat(Type formatType)
   {
      return this;
   }

   public String Format
   { get { return fmtStrings[rnd.Next(0, fmtStrings.Length)]; } }
}

public class Example
{
   public static void Main()
   {
      Temperature cold = new Temperature (-40);
      Temperature freezing = new Temperature (0);
      Temperature boiling = new Temperature (100);

      TemperatureProvider tp = new TemperatureProvider();

      Console.WriteLine(Convert.ToString(cold, tp));
      Console.WriteLine(Convert.ToString(freezing, tp));
      Console.WriteLine(Convert.ToString(boiling, tp));
   }
}
// The example displays output like the following:
//       -40.00 °C
//       273.15 K
//       100.00 °C
open System

[<AllowNullLiteral>]
type TemperatureProvider() =
    let fmtStrings = [| "C"; "G"; "F"; "K" |]
    let rnd = Random()

    member _.Format =
        fmtStrings[rnd.Next(0, fmtStrings.Length)]

    interface IFormatProvider with
        member this.GetFormat(formatType: Type) =
            this

type Temperature(temperature: decimal) =
    member _.Celsius =
        temperature
    member _.Kelvin =
        temperature + 273.15m

    member _.Fahrenheit =
        Math.Round(temperature * 9m / 5m + 32m, 2)

    override this.ToString() =
        this.ToString("G", null)

    member this.ToString(fmt: string, provider: IFormatProvider) =
        let formatter =
            match provider with
            | null -> null
            | _ ->
                match provider.GetFormat typeof<TemperatureProvider> with
                | :? TemperatureProvider as x -> x
                | _ -> null 

        let fmt = 
            if String.IsNullOrWhiteSpace fmt then
                if formatter <> null then
                    formatter.Format
                else
                    "G"
            else fmt

        match fmt.ToUpper() with
        | "G"
        | "C" ->
            $"{temperature:N2} °C"
        | "F" ->
            $"{this.Fahrenheit:N2}  °F"
        | "K" ->
            $"{this.Kelvin:N2} K"
        | _ ->
            raise (FormatException $"'{fmt}' is not a valid format specifier.")

let cold = Temperature -40
let freezing = Temperature 0
let boiling = Temperature 100

let tp = TemperatureProvider()

printfn $"{Convert.ToString(cold, tp)}"
printfn $"{Convert.ToString(freezing, tp)}"
printfn $"{Convert.ToString(boiling, tp)}"
// The example displays output like the following:
//       -40.00 °C
//       273.15 K
//       100.00 °C
Public Class Temperature : Implements IFormattable 
   Private m_Temp As Decimal 

   Public Sub New(temperature As Decimal)
      Me.m_Temp = temperature
   End Sub 

   Public ReadOnly Property Celsius As Decimal 
      Get 
         Return Me.m_Temp
      End Get    
   End Property 

   Public ReadOnly Property Kelvin As Decimal 
      Get 
         Return Me.m_Temp + 273.15d   
      End Get 
   End Property 

   Public ReadOnly Property Fahrenheit As Decimal 
      Get 
         Return Math.Round(CDec(Me.m_Temp * 9 / 5 + 32), 2)
      End Get       
   End Property 

   Public Overrides Function ToString() As String 
      Return ToString("G", Nothing) 
   End Function 
   
   Public Overloads Function ToString(fmt As String, 
                                      provider As IFormatProvider) As String _
                             Implements IFormattable.ToString
      Dim formatter As TemperatureProvider = Nothing
      If provider IsNot Nothing Then formatter = TryCast(provider.GetFormat(GetType(TemperatureProvider)),
                                                         TemperatureProvider)

      If String.IsNullOrWhiteSpace(fmt) Then
         If formatter IsNot Nothing Then
            fmt = formatter.Format
         Else
            fmt = "G"
         End If
      End If

      Select Case fmt.ToUpper()
         Case "G", "C"
            Return m_Temp.ToString("N2") & " °C" 
         Case "F"
            Return Fahrenheit.ToString("N2") + " °F"
         Case "K"
            Return Kelvin.ToString("N2") + " K"
         Case Else
            Throw New FormatException(String.Format("'{0}' is not a valid format specifier.", fmt))
      End Select
   End Function                             
End Class 

Public Class TemperatureProvider : Implements IFormatProvider
   Private fmtStrings() As String = { "C", "G", "F", "K" }
   Private rnd As New Random()
   
   Public Function GetFormat(formatType As Type) As Object _
                   Implements IFormatProvider.GetFormat 
      Return Me 
   End Function
   
   Public ReadOnly Property Format As String
      Get
         Return fmtStrings(rnd.Next(0, fmtStrings.Length))
      End Get
   End Property
End Class

Module Example
   Public Sub Main()
      Dim cold As New Temperature(-40)
      Dim freezing As New Temperature(0)
      Dim boiling As New Temperature(100)

      Dim tp As New TemperatureProvider()
      
      Console.WriteLine(Convert.ToString(cold, tp))
      Console.WriteLine(Convert.ToString(freezing, tp))
      Console.WriteLine(Convert.ToString(boiling, tp))
   End Sub 
End Module 
' The example displays output like the following:
'       -40.00 °C
'       273.15 K
'       100.00 °C

注解

value如果 参数实现 IConvertible 接口,该方法将调用 IConvertible.ToString(IFormatProvider)value实现。 否则,如果 value 参数实现 IFormattable 接口,该方法将调用其 IFormattable.ToString(String, IFormatProvider) 实现。 如果 value 两个接口均未实现,则该方法调用 value 参数的 ToString() 方法,并忽略 参数 provider

provider如果 value 参数实现 或 IFormattable 接口,IConvertible则使用 参数。 参数的 provider 最常见用途是指定 转换 value中使用的特定于区域性的信息。 例如,如果 value 参数是负十进制数,则 provider 参数可以提供有关用于负号和小数分隔符的表示法的区域性特定信息。 下一部分中的第二个示例演示了不提供区分区域性的格式设置信息的格式提供程序。

适用于

ToString(SByte, IFormatProvider)

重要

此 API 不符合 CLS。

使用指定的区域性特定格式设置信息,将指定的 8 位带符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::SByte value, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static string ToString (sbyte value, IFormatProvider provider);
[System.CLSCompliant(false)]
public static string ToString (sbyte value, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member ToString : sbyte * IFormatProvider -> string
Public Shared Function ToString (value As SByte, provider As IFormatProvider) As String

参数

value
SByte

要转换的 8 位带符号整数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

属性

示例

以下示例定义一个自定义 NumberFormatInfo 类,该类将其负号定义为字符串“~”,将正符号定义为字符串“!”。 然后,它调用 方法, Convert.ToString(SByte, IFormatProvider) 将有符号字节数组中的每个元素转换为其等效的字符串表示形式。 转换使用固定区域性和自定义 NumberFormatInfo 对象。

sbyte[] numbers = { SByte.MinValue, -12, 17, SByte.MaxValue};
System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.NegativeSign = "~";
nfi.PositiveSign = "!";
foreach (sbyte number in numbers)
   Console.WriteLine(Convert.ToString(number, nfi));
// The example displays the following output:
//       ~128
//       ~12
//       17
//       127
let numbers = [| SByte.MinValue; -12y; 17y; SByte.MaxValue |]
let nfi = NumberFormatInfo()
nfi.NegativeSign <- "~"
nfi.PositiveSign <- "!"
for number in numbers do
    printfn $"{Convert.ToString(number, nfi)}"
// The example displays the following output:
//       ~128
//       ~12
//       17
//       127
Dim numbers() As SByte = { SByte.MinValue, -12, 17, SByte.MaxValue}
Dim nfi As New System.Globalization.NumberFormatInfo()
nfi.NegativeSign = "~"
nfi.PositiveSign = "!"
For Each number As SByte In numbers
   Console.WriteLine(Convert.ToString(number, nfi))
Next
' The example displays the following output:
'       ~128
'       ~12
'       17
'       127

注解

此实现与 相同 SByte.ToString(IFormatProvider)

适用于

ToString(String, IFormatProvider)

返回指定的字符串实例;不执行任何实际转换。

public:
 static System::String ^ ToString(System::String ^ value, IFormatProvider ^ provider);
public static string? ToString (string? value, IFormatProvider? provider);
public static string ToString (string value, IFormatProvider provider);
static member ToString : string * IFormatProvider -> string
Public Shared Function ToString (value As String, provider As IFormatProvider) As String

参数

value
String

要返回的字符串。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。 忽略此参数。

返回

不经更改即返回 value

示例

以下示例使用 String 参数调用 ToString 方法。 方法返回未修改 String 的 ,而不引用 对象 IFormatProvider

// Example of Convert::ToString( non-numeric types, IFormatProvider ).
using namespace System;
using namespace System::Globalization;

#define null (Object^)0

// An instance of this class can be passed to methods that require 
// an IFormatProvider.
ref class DummyProvider: public IFormatProvider
{
public:

   // Normally, GetFormat returns an object of the requested type
   // (usually itself) if it is able; otherwise, it returns Nothing. 
   virtual Object^ GetFormat( Type^ argType )
   {
      // Here, the type of argType is displayed, and GetFormat
      // always returns Nothing.
      Console::Write( "{0,-40}", argType->ToString() );
      return null;
   }
};

int main()
{
   // Create an instance of the IFormatProvider.
   DummyProvider^ provider = gcnew DummyProvider;
   String^ converted;

   // Convert these values using DummyProvider.
   int Int32A = -252645135;
   double DoubleA = 61680.3855;
   Object^ ObjDouble =  -98765.4321;
   DateTime DayTimeA = DateTime(2001,9,11,13,45,0);
   bool BoolA = true;
   String^ StringA = "Qwerty";
   Char CharA = '$';
   TimeSpan TSpanA = TimeSpan(0,18,0);
   Object^ ObjOther = static_cast<Object^>(provider);
   Console::WriteLine( "This example of "
   "Convert::ToString( non-numeric, IFormatProvider* ) \n"
   "generates the following output. The provider type, "
   "argument type, \nand argument value are displayed." );
   Console::WriteLine( "\nNote: The IFormatProvider object is "
   "not called for Boolean, String, \nChar, TimeSpan, "
   "and non-numeric Object." );

   // The format provider is called for these conversions.
   Console::WriteLine();
   converted = Convert::ToString( Int32A, provider );
   Console::WriteLine( "int      {0}", converted );
   converted = Convert::ToString( DoubleA, provider );
   Console::WriteLine( "double   {0}", converted );
   converted = Convert::ToString( ObjDouble, provider );
   Console::WriteLine( "Object   {0}", converted );
   converted = Convert::ToString( DayTimeA, provider );
   Console::WriteLine( "DateTime {0}", converted );

   // The format provider is not called for these conversions.
   Console::WriteLine();
   converted = Convert::ToString( BoolA, provider );
   Console::WriteLine( "bool     {0}", converted );
   converted = Convert::ToString( StringA, provider );
   Console::WriteLine( "String   {0}", converted );
   converted = Convert::ToString( CharA, provider );
   Console::WriteLine( "Char     {0}", converted );
   converted = Convert::ToString( TSpanA, provider );
   Console::WriteLine( "TimeSpan {0}", converted );
   converted = Convert::ToString( ObjOther, provider );
   Console::WriteLine( "Object   {0}", converted );
}

/*
This example of Convert::ToString( non-numeric, IFormatProvider* )
generates the following output. The provider type, argument type,
and argument value are displayed.

Note: The IFormatProvider object is not called for Boolean, String,
Char, TimeSpan, and non-numeric Object.

System.Globalization.NumberFormatInfo   int      -252645135
System.Globalization.NumberFormatInfo   double   61680.3855
System.Globalization.NumberFormatInfo   Object   -98765.4321
System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM

bool     True
String   Qwerty
Char     $
TimeSpan 00:18:00
Object   DummyProvider
*/
// Example of Convert.ToString( non-numeric types, IFormatProvider ).
using System;
using System.Globalization;

// An instance of this class can be passed to methods that require
// an IFormatProvider.
public class DummyProvider : IFormatProvider
{
    // Normally, GetFormat returns an object of the requested type
    // (usually itself) if it is able; otherwise, it returns Nothing.
    public object GetFormat( Type argType )
    {
        // Here, the type of argType is displayed, and GetFormat
        // always returns Nothing.
        Console.Write( "{0,-40}", argType.ToString( ) );
        return null;
    }
}

class ConvertNonNumericProviderDemo
{
    static void Main( )
    {
        // Create an instance of the IFormatProvider.
        DummyProvider provider = new DummyProvider( );
        string converted;

        // Convert these values using DummyProvider.
        int      Int32A     = -252645135;
        double   DoubleA    = 61680.3855;
        object   ObjDouble  = (object)( -98765.4321 );
        DateTime DayTimeA   = new DateTime( 2001, 9, 11, 13, 45, 0 );

        bool     BoolA      = true;
        string   StringA    = "Qwerty";
        char     CharA      = '$';
        TimeSpan TSpanA     = new TimeSpan( 0, 18, 0 );
        object   ObjOther   = (object)provider;

        Console.WriteLine( "This example of " +
            "Convert.ToString( non-numeric, IFormatProvider ) \n" +
            "generates the following output. The provider type, " +
            "argument type, \nand argument value are displayed." );
        Console.WriteLine( "\nNote: The IFormatProvider object is " +
            "not called for Boolean, String, \nChar, TimeSpan, " +
            "and non-numeric Object." );

        // The format provider is called for these conversions.
        Console.WriteLine( );
        converted = Convert.ToString( Int32A, provider );
        Console.WriteLine( "int      {0}", converted );
        converted = Convert.ToString( DoubleA, provider );
        Console.WriteLine( "double   {0}", converted );
        converted = Convert.ToString( ObjDouble, provider );
        Console.WriteLine( "object   {0}", converted );
        converted = Convert.ToString( DayTimeA, provider );
        Console.WriteLine( "DateTime {0}", converted );

        // The format provider is not called for these conversions.
        Console.WriteLine( );
        converted = Convert.ToString( BoolA, provider );
        Console.WriteLine( "bool     {0}", converted );
        converted = Convert.ToString( StringA, provider );
        Console.WriteLine( "string   {0}", converted );
        converted = Convert.ToString( CharA, provider );
        Console.WriteLine( "char     {0}", converted );
        converted = Convert.ToString( TSpanA, provider );
        Console.WriteLine( "TimeSpan {0}", converted );
        converted = Convert.ToString( ObjOther, provider );
        Console.WriteLine( "object   {0}", converted );
    }
}

/*
This example of Convert.ToString( non-numeric, IFormatProvider )
generates the following output. The provider type, argument type,
and argument value are displayed.

Note: The IFormatProvider object is not called for Boolean, String,
Char, TimeSpan, and non-numeric Object.

System.Globalization.NumberFormatInfo   int      -252645135
System.Globalization.NumberFormatInfo   double   61680.3855
System.Globalization.NumberFormatInfo   object   -98765.4321
System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM

bool     True
string   Qwerty
char     $
TimeSpan 00:18:00
object   DummyProvider

*/
// Example of Convert.ToString(non-numeric types, IFormatProvider).
open System
open System.Globalization

// Create an instance of the IFormatProvider with an object expression.
let provider =
    { new IFormatProvider with
        // Normally, GetFormat returns an object of the requested type
        // (usually itself) if it is able; otherwise, it returns Nothing.
        member _.GetFormat(argType: Type) =
            // Here, the type of argType is displayed, and GetFormat
            // always returns Nothing.
            printf $"{argType,-40}"
            null 
    }

// Convert these values using DummyProvider.
let Int32A     = -252645135
let DoubleA    = 61680.3855
let ObjDouble  = -98765.4321 :> obj
let DayTimeA   = DateTime(2001, 9, 11, 13, 45, 0)

let BoolA      = true
let StringA    = "Qwerty"
let CharA      = '$'
let TSpanA     = TimeSpan(0, 18, 0)
let ObjOther   = provider :> obj

[<EntryPoint>]
let main _ =
    printfn
        """This example of Convert.ToString(non-numeric, IFormatProvider) 
generates the following output. The provider type, argument type, 
and argument value are displayed.

Note: The IFormatProvider object is not called for Boolean, String, 
Char, TimeSpan, and non-numeric Object."""

    // The format provider is called for these conversions.
    printfn ""
    let converted = Convert.ToString(Int32A, provider)
    printfn $"int      {converted}"
    let converted = Convert.ToString(DoubleA, provider)
    printfn $"double   {converted}"
    let converted = Convert.ToString(ObjDouble, provider)
    printfn $"object   {converted}"
    let converted = Convert.ToString(DayTimeA, provider)
    printfn $"DateTime {converted}"

    // The format provider is not called for these conversions.
    printfn ""
    let converted = Convert.ToString(BoolA, provider)
    printfn $"bool     {converted}"
    let converted = Convert.ToString(StringA, provider)
    printfn $"string   {converted}"
    let converted = Convert.ToString(CharA, provider)
    printfn $"char     {converted}"
    let converted = Convert.ToString(TSpanA, provider)
    printfn $"TimeSpan {converted}"
    let converted = Convert.ToString(ObjOther, provider)
    printfn $"object   {converted}"

    0

// This example of Convert.ToString(non-numeric, IFormatProvider)
// generates the following output. The provider type, argument type,
// and argument value are displayed.
//
// Note: The IFormatProvider object is not called for Boolean, String,
// Char, TimeSpan, and non-numeric Object.
//
// System.Globalization.NumberFormatInfo   int      -252645135
// System.Globalization.NumberFormatInfo   double   61680.3855
// System.Globalization.NumberFormatInfo   object   -98765.4321
// System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM
//
// bool     True
// string   Qwerty
// char     $
// TimeSpan 00:18:00
// object   DummyProvider
' Example of Convert.ToString( non-numeric types, IFormatProvider ).
Imports System.Globalization

' An instance of this class can be passed to methods that require 
' an IFormatProvider.
Public Class DummyProvider
    Implements IFormatProvider

    ' Normally, GetFormat returns an object of the requested type
    ' (usually itself) if it is able; otherwise, it returns Nothing. 
    Public Function GetFormat( argType As Type ) As Object _
        Implements IFormatProvider.GetFormat

        ' Here, the type of argType is displayed, and GetFormat
        ' always returns Nothing.
        Console.Write( "{0,-40}", argType.ToString( ) )
        Return Nothing

    End Function 
End Class

Module ConvertNonNumericProviderDemo

    Sub Main( )

        ' Create an instance of the IFormatProvider.
        Dim provider    As New DummyProvider( )
        Dim converted   As String

        ' Convert these values using DummyProvider.
        Dim Int32A      As Integer  = -252645135   
        Dim DoubleA     As Double   = 61680.3855
        Dim ObjDouble   As Object   = CType( -98765.4321, Object )
        Dim DayTimeA    As DateTime = _
                            new DateTime( 2001, 9, 11, 13, 45, 0 )

        Dim BoolA       As Boolean  = True
        Dim StringA     As String   = "Qwerty"
        Dim CharA       As Char     = "$"c
        Dim TSpanA      As TimeSpan = New TimeSpan( 0, 18, 0 )
        Dim ObjOther    As Object   = CType( provider, Object )

        Console.WriteLine( "This example of " & _
            "Convert.ToString( non-numeric, IFormatProvider ) " & _
            vbCrLf & "generates the following output. The " & _
            "provider type, argument type, " & vbCrLf & "and " & _
            "argument value are displayed." )
        Console.WriteLine( vbCrLf & _
            "Note: The IFormatProvider object is not called for " & _
            "Boolean, String, " & vbCrLf & "Char, TimeSpan, " & _
            "and non-numeric Object." )

        ' The format provider is called for these conversions.
        Console.WriteLine( )
        converted =  Convert.ToString( Int32A, provider )
        Console.WriteLine( "Int32    {0}", converted )
        converted =  Convert.ToString( DoubleA, provider )
        Console.WriteLine( "Double   {0}", converted )
        converted =  Convert.ToString( ObjDouble, provider )
        Console.WriteLine( "Object   {0}", converted )
        converted =  Convert.ToString( DayTimeA, provider )
        Console.WriteLine( "DateTime {0}", converted )

        ' The format provider is not called for these conversions.
        Console.WriteLine( )
        converted =  Convert.ToString( BoolA, provider )
        Console.WriteLine( "Boolean  {0}", converted )
        converted =  Convert.ToString( StringA, provider )
        Console.WriteLine( "String   {0}", converted )
        converted =  Convert.ToString( CharA, provider )
        Console.WriteLine( "Char     {0}", converted )
        converted =  Convert.ToString( TSpanA, provider )
        Console.WriteLine( "TimeSpan {0}", converted )
        converted =  Convert.ToString( ObjOther, provider )
        Console.WriteLine( "Object   {0}", converted )

    End Sub
End Module

' This example of Convert.ToString( non-numeric, IFormatProvider )
' generates the following output. The provider type, argument type,
' and argument value are displayed.
'
' Note: The IFormatProvider object is not called for Boolean, String,
' Char, TimeSpan, and non-numeric Object.
' 
' System.Globalization.NumberFormatInfo   Int32    -252645135
' System.Globalization.NumberFormatInfo   Double   61680.3855
' System.Globalization.NumberFormatInfo   Object   -98765.4321
' System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM
' 
' Boolean  True
' String   Qwerty
' Char     $
' TimeSpan 00:18:00
' Object   DummyProvider

适用于

ToString(UInt16, IFormatProvider)

重要

此 API 不符合 CLS。

使用指定的区域性特定格式设置信息,将指定的 16 位无符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::UInt16 value, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static string ToString (ushort value, IFormatProvider provider);
[System.CLSCompliant(false)]
public static string ToString (ushort value, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member ToString : uint16 * IFormatProvider -> string
Public Shared Function ToString (value As UShort, provider As IFormatProvider) As String

参数

value
UInt16

要转换的 16 位无符号整数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

属性

示例

以下示例定义一个自定义 NumberFormatInfo 类,该类将其负号定义为字符串“~”,将正符号定义为字符串“!”。 然后,它调用 方法, ToString(UInt16, IFormatProvider) 将 16 位无符号整数值转换为其等效的字符串表示形式。 转换同时使用固定区域性和自定义 NumberFormatInfo 对象。 输出指示未使用此格式设置信息,因为默认情况下,“G”格式说明符不包含具有正值的正号。

ushort number = UInt16.MaxValue;
System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.NegativeSign = "~";
nfi.PositiveSign = "!";

Console.WriteLine("{0,-6}  -->  {1,6}",
                  Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture),
                  Convert.ToString(number, nfi));
// The example displays the following output:
//       65535   -->   65535
let number = UInt16.MaxValue
let nfi = NumberFormatInfo()
nfi.NegativeSign <- "~"
nfi.PositiveSign <- "!"

printfn $"{Convert.ToString(number, CultureInfo.InvariantCulture),-6}  -->  {Convert.ToString(number, nfi),6}"
// The example displays the following output:
//       65535   -->   65535
Dim number As UShort = UInt16.MaxValue
Dim nfi As New System.Globalization.NumberFormatInfo()
nfi.NegativeSign = "~"
nfi.PositiveSign = "!"

Console.WriteLine("{0,-6}  -->  {1,6}", _
                  Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture), _
                  Convert.ToString(number, nfi))
' The example displays the following output:
'       65535   -->   65535

注解

此实现与 相同 UInt16.ToString(IFormatProvider)

适用于

ToString(UInt32, IFormatProvider)

重要

此 API 不符合 CLS。

使用指定的区域性特定格式设置信息,将指定的 32 位无符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::UInt32 value, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static string ToString (uint value, IFormatProvider provider);
[System.CLSCompliant(false)]
public static string ToString (uint value, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member ToString : uint32 * IFormatProvider -> string
Public Shared Function ToString (value As UInteger, provider As IFormatProvider) As String

参数

value
UInt32

要转换的 32 位无符号整数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

属性

示例

以下示例定义一个自定义 NumberFormatInfo 类,该类将其负号定义为字符串“~”,将正符号定义为字符串“!”。 然后,它调用 方法, ToString(UInt32, IFormatProvider) 将无符号整数值转换为其等效的字符串表示形式。 转换同时使用固定区域性和自定义 NumberFormatInfo 对象。 输出指示未使用此格式设置信息,因为默认情况下,“G”格式说明符不包含具有正值的正号。

uint number = UInt32.MaxValue;
System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.NegativeSign = "~";
nfi.PositiveSign = "!";

Console.WriteLine("{0,-8}  -->  {1,8}",
                  Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture),
                  Convert.ToString(number, nfi));
// The example displays the following output:
//       4294967295  -->  4294967295
let number = UInt32.MaxValue
let nfi = NumberFormatInfo()
nfi.NegativeSign <- "~"
nfi.PositiveSign <- "!"

printfn $"{Convert.ToString(number, CultureInfo.InvariantCulture),-8}  -->  {Convert.ToString(number, nfi),8}"
// The example displays the following output:
//       4294967295  -->  4294967295
Dim number As UInteger = UInt32.MaxValue
Dim nfi As New System.Globalization.NumberFormatInfo()
nfi.NegativeSign = "~"
nfi.PositiveSign = "!"

Console.WriteLine("{0,-8}  -->  {1,8}", _
                  Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture), _
                  Convert.ToString(number, nfi))
' The example displays the following output:
'       4294967295  -->  4294967295

注解

此实现与 相同 UInt32.ToString(IFormatProvider)

适用于

ToString(UInt64, IFormatProvider)

重要

此 API 不符合 CLS。

使用指定的区域性特定格式设置信息,将指定的 64 位无符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::UInt64 value, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static string ToString (ulong value, IFormatProvider provider);
[System.CLSCompliant(false)]
public static string ToString (ulong value, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member ToString : uint64 * IFormatProvider -> string
Public Shared Function ToString (value As ULong, provider As IFormatProvider) As String

参数

value
UInt64

要转换的 64 位无符号整数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

属性

示例

以下示例定义一个自定义 NumberFormatInfo 类,该类将其负号定义为字符串“~”,将正符号定义为字符串“!”。 然后,它调用 方法, ToString(UInt64, IFormatProvider) 将无符号长整数值转换为其等效的字符串表示形式。 转换同时使用固定区域性和自定义 NumberFormatInfo 对象。 输出指示未使用此格式设置信息,因为默认情况下,“G”格式说明符不包含具有正值的正号。

ulong number = UInt64.MaxValue;
System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.NegativeSign = "~";
nfi.PositiveSign = "!";

Console.WriteLine("{0,-12}  -->  {1,12}",
                  Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture),
                  Convert.ToString(number, nfi));
// The example displays the following output:
//    18446744073709551615  -->  18446744073709551615
let number = UInt64.MaxValue
let nfi = NumberFormatInfo()
nfi.NegativeSign <- "~"
nfi.PositiveSign <- "!"

printfn $"{Convert.ToString(number, CultureInfo.InvariantCulture),-12}  -->  {Convert.ToString(number, nfi),12}"
// The example displays the following output:
//    18446744073709551615  -->  18446744073709551615
Dim number As ULong = UInt64.MaxValue
Dim nfi As New System.Globalization.NumberFormatInfo()
nfi.NegativeSign = "~"
nfi.PositiveSign = "!"

Console.WriteLine("{0,-12}  -->  {1,12}", _
                  Convert.ToString(number, System.Globalization.CultureInfo.InvariantCulture), _
                  Convert.ToString(number, nfi))
' The example displays the following output:
'    18446744073709551615  -->  18446744073709551615

注解

此实现与 相同 UInt64.ToString(IFormatProvider)

适用于

ToString(Char, IFormatProvider)

使用指定的区域性特定格式设置信息将指定的 Unicode 字符的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(char value, IFormatProvider ^ provider);
public static string ToString (char value, IFormatProvider provider);
public static string ToString (char value, IFormatProvider? provider);
static member ToString : char * IFormatProvider -> string
Public Shared Function ToString (value As Char, provider As IFormatProvider) As String

参数

value
Char

要转换的 Unicode 字符。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。 忽略此参数。

返回

value 的字符串表示形式。

示例

以下示例使用 一个 IFormatProvider 对象将值String转换为Char具有 ToString 方法的 ,该对象显示调用它的格式提供程序的类型。 该示例显示 IFormatProvider 未引用 对象。

// Example of Convert::ToString( non-numeric types, IFormatProvider ).
using namespace System;
using namespace System::Globalization;

#define null (Object^)0

// An instance of this class can be passed to methods that require 
// an IFormatProvider.
ref class DummyProvider: public IFormatProvider
{
public:

   // Normally, GetFormat returns an object of the requested type
   // (usually itself) if it is able; otherwise, it returns Nothing. 
   virtual Object^ GetFormat( Type^ argType )
   {
      // Here, the type of argType is displayed, and GetFormat
      // always returns Nothing.
      Console::Write( "{0,-40}", argType->ToString() );
      return null;
   }
};

int main()
{
   // Create an instance of the IFormatProvider.
   DummyProvider^ provider = gcnew DummyProvider;
   String^ converted;

   // Convert these values using DummyProvider.
   int Int32A = -252645135;
   double DoubleA = 61680.3855;
   Object^ ObjDouble =  -98765.4321;
   DateTime DayTimeA = DateTime(2001,9,11,13,45,0);
   bool BoolA = true;
   String^ StringA = "Qwerty";
   Char CharA = '$';
   TimeSpan TSpanA = TimeSpan(0,18,0);
   Object^ ObjOther = static_cast<Object^>(provider);
   Console::WriteLine( "This example of "
   "Convert::ToString( non-numeric, IFormatProvider* ) \n"
   "generates the following output. The provider type, "
   "argument type, \nand argument value are displayed." );
   Console::WriteLine( "\nNote: The IFormatProvider object is "
   "not called for Boolean, String, \nChar, TimeSpan, "
   "and non-numeric Object." );

   // The format provider is called for these conversions.
   Console::WriteLine();
   converted = Convert::ToString( Int32A, provider );
   Console::WriteLine( "int      {0}", converted );
   converted = Convert::ToString( DoubleA, provider );
   Console::WriteLine( "double   {0}", converted );
   converted = Convert::ToString( ObjDouble, provider );
   Console::WriteLine( "Object   {0}", converted );
   converted = Convert::ToString( DayTimeA, provider );
   Console::WriteLine( "DateTime {0}", converted );

   // The format provider is not called for these conversions.
   Console::WriteLine();
   converted = Convert::ToString( BoolA, provider );
   Console::WriteLine( "bool     {0}", converted );
   converted = Convert::ToString( StringA, provider );
   Console::WriteLine( "String   {0}", converted );
   converted = Convert::ToString( CharA, provider );
   Console::WriteLine( "Char     {0}", converted );
   converted = Convert::ToString( TSpanA, provider );
   Console::WriteLine( "TimeSpan {0}", converted );
   converted = Convert::ToString( ObjOther, provider );
   Console::WriteLine( "Object   {0}", converted );
}

/*
This example of Convert::ToString( non-numeric, IFormatProvider* )
generates the following output. The provider type, argument type,
and argument value are displayed.

Note: The IFormatProvider object is not called for Boolean, String,
Char, TimeSpan, and non-numeric Object.

System.Globalization.NumberFormatInfo   int      -252645135
System.Globalization.NumberFormatInfo   double   61680.3855
System.Globalization.NumberFormatInfo   Object   -98765.4321
System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM

bool     True
String   Qwerty
Char     $
TimeSpan 00:18:00
Object   DummyProvider
*/
// Example of Convert.ToString( non-numeric types, IFormatProvider ).
using System;
using System.Globalization;

// An instance of this class can be passed to methods that require
// an IFormatProvider.
public class DummyProvider : IFormatProvider
{
    // Normally, GetFormat returns an object of the requested type
    // (usually itself) if it is able; otherwise, it returns Nothing.
    public object GetFormat( Type argType )
    {
        // Here, the type of argType is displayed, and GetFormat
        // always returns Nothing.
        Console.Write( "{0,-40}", argType.ToString( ) );
        return null;
    }
}

class ConvertNonNumericProviderDemo
{
    static void Main( )
    {
        // Create an instance of the IFormatProvider.
        DummyProvider provider = new DummyProvider( );
        string converted;

        // Convert these values using DummyProvider.
        int      Int32A     = -252645135;
        double   DoubleA    = 61680.3855;
        object   ObjDouble  = (object)( -98765.4321 );
        DateTime DayTimeA   = new DateTime( 2001, 9, 11, 13, 45, 0 );

        bool     BoolA      = true;
        string   StringA    = "Qwerty";
        char     CharA      = '$';
        TimeSpan TSpanA     = new TimeSpan( 0, 18, 0 );
        object   ObjOther   = (object)provider;

        Console.WriteLine( "This example of " +
            "Convert.ToString( non-numeric, IFormatProvider ) \n" +
            "generates the following output. The provider type, " +
            "argument type, \nand argument value are displayed." );
        Console.WriteLine( "\nNote: The IFormatProvider object is " +
            "not called for Boolean, String, \nChar, TimeSpan, " +
            "and non-numeric Object." );

        // The format provider is called for these conversions.
        Console.WriteLine( );
        converted = Convert.ToString( Int32A, provider );
        Console.WriteLine( "int      {0}", converted );
        converted = Convert.ToString( DoubleA, provider );
        Console.WriteLine( "double   {0}", converted );
        converted = Convert.ToString( ObjDouble, provider );
        Console.WriteLine( "object   {0}", converted );
        converted = Convert.ToString( DayTimeA, provider );
        Console.WriteLine( "DateTime {0}", converted );

        // The format provider is not called for these conversions.
        Console.WriteLine( );
        converted = Convert.ToString( BoolA, provider );
        Console.WriteLine( "bool     {0}", converted );
        converted = Convert.ToString( StringA, provider );
        Console.WriteLine( "string   {0}", converted );
        converted = Convert.ToString( CharA, provider );
        Console.WriteLine( "char     {0}", converted );
        converted = Convert.ToString( TSpanA, provider );
        Console.WriteLine( "TimeSpan {0}", converted );
        converted = Convert.ToString( ObjOther, provider );
        Console.WriteLine( "object   {0}", converted );
    }
}

/*
This example of Convert.ToString( non-numeric, IFormatProvider )
generates the following output. The provider type, argument type,
and argument value are displayed.

Note: The IFormatProvider object is not called for Boolean, String,
Char, TimeSpan, and non-numeric Object.

System.Globalization.NumberFormatInfo   int      -252645135
System.Globalization.NumberFormatInfo   double   61680.3855
System.Globalization.NumberFormatInfo   object   -98765.4321
System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM

bool     True
string   Qwerty
char     $
TimeSpan 00:18:00
object   DummyProvider

*/
// Example of Convert.ToString(non-numeric types, IFormatProvider).
open System
open System.Globalization

// Create an instance of the IFormatProvider with an object expression.
let provider =
    { new IFormatProvider with
        // Normally, GetFormat returns an object of the requested type
        // (usually itself) if it is able; otherwise, it returns Nothing.
        member _.GetFormat(argType: Type) =
            // Here, the type of argType is displayed, and GetFormat
            // always returns Nothing.
            printf $"{argType,-40}"
            null 
    }

// Convert these values using DummyProvider.
let Int32A     = -252645135
let DoubleA    = 61680.3855
let ObjDouble  = -98765.4321 :> obj
let DayTimeA   = DateTime(2001, 9, 11, 13, 45, 0)

let BoolA      = true
let StringA    = "Qwerty"
let CharA      = '$'
let TSpanA     = TimeSpan(0, 18, 0)
let ObjOther   = provider :> obj

[<EntryPoint>]
let main _ =
    printfn
        """This example of Convert.ToString(non-numeric, IFormatProvider) 
generates the following output. The provider type, argument type, 
and argument value are displayed.

Note: The IFormatProvider object is not called for Boolean, String, 
Char, TimeSpan, and non-numeric Object."""

    // The format provider is called for these conversions.
    printfn ""
    let converted = Convert.ToString(Int32A, provider)
    printfn $"int      {converted}"
    let converted = Convert.ToString(DoubleA, provider)
    printfn $"double   {converted}"
    let converted = Convert.ToString(ObjDouble, provider)
    printfn $"object   {converted}"
    let converted = Convert.ToString(DayTimeA, provider)
    printfn $"DateTime {converted}"

    // The format provider is not called for these conversions.
    printfn ""
    let converted = Convert.ToString(BoolA, provider)
    printfn $"bool     {converted}"
    let converted = Convert.ToString(StringA, provider)
    printfn $"string   {converted}"
    let converted = Convert.ToString(CharA, provider)
    printfn $"char     {converted}"
    let converted = Convert.ToString(TSpanA, provider)
    printfn $"TimeSpan {converted}"
    let converted = Convert.ToString(ObjOther, provider)
    printfn $"object   {converted}"

    0

// This example of Convert.ToString(non-numeric, IFormatProvider)
// generates the following output. The provider type, argument type,
// and argument value are displayed.
//
// Note: The IFormatProvider object is not called for Boolean, String,
// Char, TimeSpan, and non-numeric Object.
//
// System.Globalization.NumberFormatInfo   int      -252645135
// System.Globalization.NumberFormatInfo   double   61680.3855
// System.Globalization.NumberFormatInfo   object   -98765.4321
// System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM
//
// bool     True
// string   Qwerty
// char     $
// TimeSpan 00:18:00
// object   DummyProvider
' Example of Convert.ToString( non-numeric types, IFormatProvider ).
Imports System.Globalization

' An instance of this class can be passed to methods that require 
' an IFormatProvider.
Public Class DummyProvider
    Implements IFormatProvider

    ' Normally, GetFormat returns an object of the requested type
    ' (usually itself) if it is able; otherwise, it returns Nothing. 
    Public Function GetFormat( argType As Type ) As Object _
        Implements IFormatProvider.GetFormat

        ' Here, the type of argType is displayed, and GetFormat
        ' always returns Nothing.
        Console.Write( "{0,-40}", argType.ToString( ) )
        Return Nothing

    End Function 
End Class

Module ConvertNonNumericProviderDemo

    Sub Main( )

        ' Create an instance of the IFormatProvider.
        Dim provider    As New DummyProvider( )
        Dim converted   As String

        ' Convert these values using DummyProvider.
        Dim Int32A      As Integer  = -252645135   
        Dim DoubleA     As Double   = 61680.3855
        Dim ObjDouble   As Object   = CType( -98765.4321, Object )
        Dim DayTimeA    As DateTime = _
                            new DateTime( 2001, 9, 11, 13, 45, 0 )

        Dim BoolA       As Boolean  = True
        Dim StringA     As String   = "Qwerty"
        Dim CharA       As Char     = "$"c
        Dim TSpanA      As TimeSpan = New TimeSpan( 0, 18, 0 )
        Dim ObjOther    As Object   = CType( provider, Object )

        Console.WriteLine( "This example of " & _
            "Convert.ToString( non-numeric, IFormatProvider ) " & _
            vbCrLf & "generates the following output. The " & _
            "provider type, argument type, " & vbCrLf & "and " & _
            "argument value are displayed." )
        Console.WriteLine( vbCrLf & _
            "Note: The IFormatProvider object is not called for " & _
            "Boolean, String, " & vbCrLf & "Char, TimeSpan, " & _
            "and non-numeric Object." )

        ' The format provider is called for these conversions.
        Console.WriteLine( )
        converted =  Convert.ToString( Int32A, provider )
        Console.WriteLine( "Int32    {0}", converted )
        converted =  Convert.ToString( DoubleA, provider )
        Console.WriteLine( "Double   {0}", converted )
        converted =  Convert.ToString( ObjDouble, provider )
        Console.WriteLine( "Object   {0}", converted )
        converted =  Convert.ToString( DayTimeA, provider )
        Console.WriteLine( "DateTime {0}", converted )

        ' The format provider is not called for these conversions.
        Console.WriteLine( )
        converted =  Convert.ToString( BoolA, provider )
        Console.WriteLine( "Boolean  {0}", converted )
        converted =  Convert.ToString( StringA, provider )
        Console.WriteLine( "String   {0}", converted )
        converted =  Convert.ToString( CharA, provider )
        Console.WriteLine( "Char     {0}", converted )
        converted =  Convert.ToString( TSpanA, provider )
        Console.WriteLine( "TimeSpan {0}", converted )
        converted =  Convert.ToString( ObjOther, provider )
        Console.WriteLine( "Object   {0}", converted )

    End Sub
End Module

' This example of Convert.ToString( non-numeric, IFormatProvider )
' generates the following output. The provider type, argument type,
' and argument value are displayed.
'
' Note: The IFormatProvider object is not called for Boolean, String,
' Char, TimeSpan, and non-numeric Object.
' 
' System.Globalization.NumberFormatInfo   Int32    -252645135
' System.Globalization.NumberFormatInfo   Double   61680.3855
' System.Globalization.NumberFormatInfo   Object   -98765.4321
' System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM
' 
' Boolean  True
' String   Qwerty
' Char     $
' TimeSpan 00:18:00
' Object   DummyProvider

注解

此实现与 相同 Char.ToString()。 忽略 provider 参数。

适用于

ToString(Int64, Int32)

将 64 位带符号整数的值转换为其指定基的等效字符串表示形式。

public:
 static System::String ^ ToString(long value, int toBase);
public static string ToString (long value, int toBase);
static member ToString : int64 * int -> string
Public Shared Function ToString (value As Long, toBase As Integer) As String

参数

value
Int64

要转换的 64 位带符号整数。

toBase
Int32

返回值的基数,必须是 2、8、10 或 16。

返回

value 为基数的 toBase 的字符串表示形式。

例外

toBase 不是 2、8、10 或 16。

示例

下面的示例将长整数数组中的每个元素转换为其等效的二进制、十六进制、十六进制和十六进制字符串表示形式。

int[] bases = { 2, 8, 10, 16};
long[] numbers = { Int64.MinValue, -193275430, -13621, -18, 12,
                   1914206117, Int64.MaxValue };

foreach (int baseValue in bases)
{
   Console.WriteLine("Base {0} conversion:", baseValue);
   foreach (long number in numbers)
   {
      Console.WriteLine("   {0,-23}  -->  0x{1}",
                        number, Convert.ToString(number, baseValue));
   }
}
// The example displays the following output:
//    Base 2 conversion:
//       -9223372036854775808     -->  0x1000000000000000000000000000000000000000000000000000000000000000
//       -193275430               -->  0x1111111111111111111111111111111111110100011110101101100111011010
//       -13621                   -->  0x1111111111111111111111111111111111111111111111111100101011001011
//       -18                      -->  0x1111111111111111111111111111111111111111111111111111111111101110
//       12                       -->  0x1100
//       1914206117               -->  0x1110010000110000111011110100101
//       9223372036854775807      -->  0x111111111111111111111111111111111111111111111111111111111111111
//    Base 8 conversion:
//       -9223372036854775808     -->  0x1000000000000000000000
//       -193275430               -->  0x1777777777776436554732
//       -13621                   -->  0x1777777777777777745313
//       -18                      -->  0x1777777777777777777756
//       12                       -->  0x14
//       1914206117               -->  0x16206073645
//       9223372036854775807      -->  0x777777777777777777777
//    Base 10 conversion:
//       -9223372036854775808     -->  0x-9223372036854775808
//       -193275430               -->  0x-193275430
//       -13621                   -->  0x-13621
//       -18                      -->  0x-18
//       12                       -->  0x12
//       1914206117               -->  0x1914206117
//       9223372036854775807      -->  0x9223372036854775807
//    Base 16 conversion:
//       -9223372036854775808     -->  0x8000000000000000
//       -193275430               -->  0xfffffffff47ad9da
//       -13621                   -->  0xffffffffffffcacb
//       -18                      -->  0xffffffffffffffee
//       12                       -->  0xc
//       1914206117               -->  0x721877a5
//       9223372036854775807      -->  0x7fffffffffffffff
let bases = [| 2; 8; 10; 16 |]
let numbers =
    [| Int64.MinValue; -193275430; -13621; -18; 12; 1914206117; Int64.MaxValue |]

for baseValue in bases do
    printfn $"Base {baseValue} conversion:"
    for number in numbers do
        printfn $"   {number,-23}  -->  0x{Convert.ToString(number, baseValue)}"
// The example displays the following output:
//    Base 2 conversion:
//       -9223372036854775808     -->  0x1000000000000000000000000000000000000000000000000000000000000000
//       -193275430               -->  0x1111111111111111111111111111111111110100011110101101100111011010
//       -13621                   -->  0x1111111111111111111111111111111111111111111111111100101011001011
//       -18                      -->  0x1111111111111111111111111111111111111111111111111111111111101110
//       12                       -->  0x1100
//       1914206117               -->  0x1110010000110000111011110100101
//       9223372036854775807      -->  0x111111111111111111111111111111111111111111111111111111111111111
//    Base 8 conversion:
//       -9223372036854775808     -->  0x1000000000000000000000
//       -193275430               -->  0x1777777777776436554732
//       -13621                   -->  0x1777777777777777745313
//       -18                      -->  0x1777777777777777777756
//       12                       -->  0x14
//       1914206117               -->  0x16206073645
//       9223372036854775807      -->  0x777777777777777777777
//    Base 10 conversion:
//       -9223372036854775808     -->  0x-9223372036854775808
//       -193275430               -->  0x-193275430
//       -13621                   -->  0x-13621
//       -18                      -->  0x-18
//       12                       -->  0x12
//       1914206117               -->  0x1914206117
//       9223372036854775807      -->  0x9223372036854775807
//    Base 16 conversion:
//       -9223372036854775808     -->  0x8000000000000000
//       -193275430               -->  0xfffffffff47ad9da
//       -13621                   -->  0xffffffffffffcacb
//       -18                      -->  0xffffffffffffffee
//       12                       -->  0xc
//       1914206117               -->  0x721877a5
//       9223372036854775807      -->  0x7fffffffffffffff
Dim bases() As Integer = { 2, 8, 10, 16}
Dim numbers() As Long = { Int64.MinValue, -193275430, -13621, -18, 12, _
                             1914206117, Int64.MaxValue }

For Each base As Integer In bases
   Console.WriteLine("Base {0} conversion:", base)
   For Each number As Long In numbers
      Console.WriteLine("   {0,-23}  -->  0x{1}", _
                        number, Convert.ToString(number, base))
   Next
Next
' The example displays the following output:
'    Base 2 conversion:
'       -9223372036854775808     -->  0x1000000000000000000000000000000000000000000000000000000000000000
'       -193275430               -->  0x1111111111111111111111111111111111110100011110101101100111011010
'       -13621                   -->  0x1111111111111111111111111111111111111111111111111100101011001011
'       -18                      -->  0x1111111111111111111111111111111111111111111111111111111111101110
'       12                       -->  0x1100
'       1914206117               -->  0x1110010000110000111011110100101
'       9223372036854775807      -->  0x111111111111111111111111111111111111111111111111111111111111111
'    Base 8 conversion:
'       -9223372036854775808     -->  0x1000000000000000000000
'       -193275430               -->  0x1777777777776436554732
'       -13621                   -->  0x1777777777777777745313
'       -18                      -->  0x1777777777777777777756
'       12                       -->  0x14
'       1914206117               -->  0x16206073645
'       9223372036854775807      -->  0x777777777777777777777
'    Base 10 conversion:
'       -9223372036854775808     -->  0x-9223372036854775808
'       -193275430               -->  0x-193275430
'       -13621                   -->  0x-13621
'       -18                      -->  0x-18
'       12                       -->  0x12
'       1914206117               -->  0x1914206117
'       9223372036854775807      -->  0x9223372036854775807
'    Base 16 conversion:
'       -9223372036854775808     -->  0x8000000000000000
'       -193275430               -->  0xfffffffff47ad9da
'       -13621                   -->  0xffffffffffffcacb
'       -18                      -->  0xffffffffffffffee
'       12                       -->  0xc
'       1914206117               -->  0x721877a5
'       9223372036854775807      -->  0x7fffffffffffffff
let bases = [2; 8; 10; 16]
let numbers = [ Int64.MinValue; -193275430L; -13621L; -18L; 12L; 1914206117L; Int64.MaxValue ]

for baseValue in bases do
    printfn "Base %i conversion:" baseValue
    for number in numbers do
        printfn "   % -23i  -->  0x%s" number (Convert.ToString (number, baseValue))
// The example displays the following output:
//     Base 2 conversion:
//        -9223372036854775808     -->  0x1000000000000000000000000000000000000000000000000000000000000000
//        -193275430               -->  0x1111111111111111111111111111111111110100011110101101100111011010
//        -13621                   -->  0x1111111111111111111111111111111111111111111111111100101011001011
//        -18                      -->  0x1111111111111111111111111111111111111111111111111111111111101110
//         12                      -->  0x1100
//         1914206117              -->  0x1110010000110000111011110100101
//         9223372036854775807     -->  0x111111111111111111111111111111111111111111111111111111111111111
//     Base 8 conversion:
//        -9223372036854775808     -->  0x1000000000000000000000
//        -193275430               -->  0x1777777777776436554732
//        -13621                   -->  0x1777777777777777745313
//        -18                      -->  0x1777777777777777777756
//         12                      -->  0x14
//         1914206117              -->  0x16206073645
//         9223372036854775807     -->  0x777777777777777777777
//     Base 10 conversion:
//        -9223372036854775808     -->  0x-9223372036854775808
//        -193275430               -->  0x-193275430
//        -13621                   -->  0x-13621
//        -18                      -->  0x-18
//         12                      -->  0x12
//         1914206117              -->  0x1914206117
//         9223372036854775807     -->  0x9223372036854775807
//     Base 16 conversion:
//        -9223372036854775808     -->  0x8000000000000000
//        -193275430               -->  0xfffffffff47ad9da
//        -13621                   -->  0xffffffffffffcacb
//        -18                      -->  0xffffffffffffffee
//         12                      -->  0xc
//         1914206117              -->  0x721877a5
//         9223372036854775807     -->  0x7fffffffffffffff

注解

如果 value 为正且 toBase 不为 10,则返回的字符串使用符号和数量级表示形式。 如果 value 为负数且 toBase 不为 10,则返回的字符串使用二的补码表示形式。 这意味着,最高阶字节 (位 63) 的高阶位被解释为符号位。 ToString(Int64, Int32)如果调用 方法以创建稍后将转换回数字的字符串,则应调用采用类似数值表示形式的相应方法来执行转换。 此类方法包括 Convert.ToInt64(String, Int32)Int64.Parse(String, NumberStyles)

适用于

ToString(Byte, Int32)

将 8 位无符号整数的值转换为其等效的指定基数的字符串表示形式。

public:
 static System::String ^ ToString(System::Byte value, int toBase);
public static string ToString (byte value, int toBase);
static member ToString : byte * int -> string
Public Shared Function ToString (value As Byte, toBase As Integer) As String

参数

value
Byte

要转换的 8 位无符号整数。

toBase
Int32

返回值的基数,必须是 2、8、10 或 16。

返回

value 为基数的 toBase 的字符串表示形式。

例外

toBase 不是 2、8、10 或 16。

示例

以下示例将字节数组中的每个元素转换为其等效的二进制、十六进制、十六进制和十六进制字符串表示形式。

int[] bases = { 2, 8, 10, 16};
byte[] numbers = { Byte.MinValue, 12, 103, Byte.MaxValue};

foreach (int baseValue in bases)
{
   Console.WriteLine("Base {0} conversion:", baseValue);
   foreach (byte number in numbers)
   {
      Console.WriteLine("   {0,-5}  -->  0x{1}",
                        number, Convert.ToString(number, baseValue));
   }
}
// The example displays the following output:
//       Base 2 conversion:
//          0      -->  0x0
//          12     -->  0x1100
//          103    -->  0x1100111
//          255    -->  0x11111111
//       Base 8 conversion:
//          0      -->  0x0
//          12     -->  0x14
//          103    -->  0x147
//          255    -->  0x377
//       Base 10 conversion:
//          0      -->  0x0
//          12     -->  0x12
//          103    -->  0x103
//          255    -->  0x255
//       Base 16 conversion:
//          0      -->  0x0
//          12     -->  0xc
//          103    -->  0x67
//          255    -->  0xff
let bases = [| 2; 8; 10; 16 |]
let numbers = [| Byte.MinValue; 12uy; 103uy; Byte.MaxValue |]

for baseValue in bases do
    printfn $"Base {baseValue} conversion:"
    for number in numbers do
        Console.WriteLine("   {0,-5}  -->  0x{1}",
                        number, Convert.ToString(number, baseValue))
// The example displays the following output:
//       Base 2 conversion:
//          0      -->  0x0
//          12     -->  0x1100
//          103    -->  0x1100111
//          255    -->  0x11111111
//       Base 8 conversion:
//          0      -->  0x0
//          12     -->  0x14
//          103    -->  0x147
//          255    -->  0x377
//       Base 10 conversion:
//          0      -->  0x0
//          12     -->  0x12
//          103    -->  0x103
//          255    -->  0x255
//       Base 16 conversion:
//          0      -->  0x0
//          12     -->  0xc
//          103    -->  0x67
//          255    -->  0xff
Dim bases() As Integer = { 2, 8, 10, 16}
Dim numbers() As Byte = { Byte.MinValue, 12, 103, Byte.MaxValue}

For Each base As Integer In bases
   Console.WriteLine("Base {0} conversion:", base)
   For Each number As Byte In numbers
      Console.WriteLine("   {0,-5}  -->  0x{1}", _
                        number, Convert.ToString(number, base))
   Next
Next
' The example displays the following output:
'       Base 2 conversion:
'          0      -->  0x0
'          12     -->  0x1100
'          103    -->  0x1100111
'          255    -->  0x11111111
'       Base 8 conversion:
'          0      -->  0x0
'          12     -->  0x14
'          103    -->  0x147
'          255    -->  0x377
'       Base 10 conversion:
'          0      -->  0x0
'          12     -->  0x12
'          103    -->  0x103
'          255    -->  0x255
'       Base 16 conversion:
'          0      -->  0x0
'          12     -->  0xc
'          103    -->  0x67
'          255    -->  0xff
let bases = [2; 8; 10; 16]
let numbers = [ Byte.MinValue; 12uy; 103uy; Byte.MaxValue ]

for baseValue in bases do
    printfn "Base %i conversion:" baseValue
    for number in numbers do
        printfn "   % -5i  -->  0x%s" number (Convert.ToString (number, baseValue))
// The example displays the following output:
//     Base 2 conversion:
//         0     -->  0x0
//         12    -->  0x1100
//         103   -->  0x1100111
//         255   -->  0x11111111
//     Base 8 conversion:
//         0     -->  0x0
//         12    -->  0x14
//         103   -->  0x147
//         255   -->  0x377
//     Base 10 conversion:
//         0     -->  0x0
//         12    -->  0x12
//         103   -->  0x103
//         255   -->  0x255
//     Base 16 conversion:
//         0     -->  0x0
//         12    -->  0xc
//         103   -->  0x67
//         255   -->  0xff

注解

如果 toBase 不等于 10,则 方法value返回Convert.ToString(Byte, Int32)的字符串仅表示其数量级。 如果调用 方法以创建稍后将转换回数字的字符串,则应调用假定仅数量级数值表示形式的相应方法来执行转换。 此类方法包括 Convert.ToByte(String, Int32)Byte.Parse(String, NumberStyles)

适用于

ToString(Boolean, IFormatProvider)

将指定的布尔值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(bool value, IFormatProvider ^ provider);
public static string ToString (bool value, IFormatProvider provider);
public static string ToString (bool value, IFormatProvider? provider);
static member ToString : bool * IFormatProvider -> string
Public Shared Function ToString (value As Boolean, provider As IFormatProvider) As String

参数

value
Boolean

要转换的布尔值。

provider
IFormatProvider

一个对象的实例。 忽略此参数。

返回

value 的字符串表示形式。

示例

以下示例使用 一个 IFormatProvider 对象将值String转换为Boolean具有 ToString 方法的 ,该对象显示调用它的格式提供程序的类型。 该示例显示 IFormatProvider 未引用 对象。

// Example of Convert::ToString( non-numeric types, IFormatProvider ).
using namespace System;
using namespace System::Globalization;

#define null (Object^)0

// An instance of this class can be passed to methods that require 
// an IFormatProvider.
ref class DummyProvider: public IFormatProvider
{
public:

   // Normally, GetFormat returns an object of the requested type
   // (usually itself) if it is able; otherwise, it returns Nothing. 
   virtual Object^ GetFormat( Type^ argType )
   {
      // Here, the type of argType is displayed, and GetFormat
      // always returns Nothing.
      Console::Write( "{0,-40}", argType->ToString() );
      return null;
   }
};

int main()
{
   // Create an instance of the IFormatProvider.
   DummyProvider^ provider = gcnew DummyProvider;
   String^ converted;

   // Convert these values using DummyProvider.
   int Int32A = -252645135;
   double DoubleA = 61680.3855;
   Object^ ObjDouble =  -98765.4321;
   DateTime DayTimeA = DateTime(2001,9,11,13,45,0);
   bool BoolA = true;
   String^ StringA = "Qwerty";
   Char CharA = '$';
   TimeSpan TSpanA = TimeSpan(0,18,0);
   Object^ ObjOther = static_cast<Object^>(provider);
   Console::WriteLine( "This example of "
   "Convert::ToString( non-numeric, IFormatProvider* ) \n"
   "generates the following output. The provider type, "
   "argument type, \nand argument value are displayed." );
   Console::WriteLine( "\nNote: The IFormatProvider object is "
   "not called for Boolean, String, \nChar, TimeSpan, "
   "and non-numeric Object." );

   // The format provider is called for these conversions.
   Console::WriteLine();
   converted = Convert::ToString( Int32A, provider );
   Console::WriteLine( "int      {0}", converted );
   converted = Convert::ToString( DoubleA, provider );
   Console::WriteLine( "double   {0}", converted );
   converted = Convert::ToString( ObjDouble, provider );
   Console::WriteLine( "Object   {0}", converted );
   converted = Convert::ToString( DayTimeA, provider );
   Console::WriteLine( "DateTime {0}", converted );

   // The format provider is not called for these conversions.
   Console::WriteLine();
   converted = Convert::ToString( BoolA, provider );
   Console::WriteLine( "bool     {0}", converted );
   converted = Convert::ToString( StringA, provider );
   Console::WriteLine( "String   {0}", converted );
   converted = Convert::ToString( CharA, provider );
   Console::WriteLine( "Char     {0}", converted );
   converted = Convert::ToString( TSpanA, provider );
   Console::WriteLine( "TimeSpan {0}", converted );
   converted = Convert::ToString( ObjOther, provider );
   Console::WriteLine( "Object   {0}", converted );
}

/*
This example of Convert::ToString( non-numeric, IFormatProvider* )
generates the following output. The provider type, argument type,
and argument value are displayed.

Note: The IFormatProvider object is not called for Boolean, String,
Char, TimeSpan, and non-numeric Object.

System.Globalization.NumberFormatInfo   int      -252645135
System.Globalization.NumberFormatInfo   double   61680.3855
System.Globalization.NumberFormatInfo   Object   -98765.4321
System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM

bool     True
String   Qwerty
Char     $
TimeSpan 00:18:00
Object   DummyProvider
*/
// Example of Convert.ToString( non-numeric types, IFormatProvider ).
using System;
using System.Globalization;

// An instance of this class can be passed to methods that require
// an IFormatProvider.
public class DummyProvider : IFormatProvider
{
    // Normally, GetFormat returns an object of the requested type
    // (usually itself) if it is able; otherwise, it returns Nothing.
    public object GetFormat( Type argType )
    {
        // Here, the type of argType is displayed, and GetFormat
        // always returns Nothing.
        Console.Write( "{0,-40}", argType.ToString( ) );
        return null;
    }
}

class ConvertNonNumericProviderDemo
{
    static void Main( )
    {
        // Create an instance of the IFormatProvider.
        DummyProvider provider = new DummyProvider( );
        string converted;

        // Convert these values using DummyProvider.
        int      Int32A     = -252645135;
        double   DoubleA    = 61680.3855;
        object   ObjDouble  = (object)( -98765.4321 );
        DateTime DayTimeA   = new DateTime( 2001, 9, 11, 13, 45, 0 );

        bool     BoolA      = true;
        string   StringA    = "Qwerty";
        char     CharA      = '$';
        TimeSpan TSpanA     = new TimeSpan( 0, 18, 0 );
        object   ObjOther   = (object)provider;

        Console.WriteLine( "This example of " +
            "Convert.ToString( non-numeric, IFormatProvider ) \n" +
            "generates the following output. The provider type, " +
            "argument type, \nand argument value are displayed." );
        Console.WriteLine( "\nNote: The IFormatProvider object is " +
            "not called for Boolean, String, \nChar, TimeSpan, " +
            "and non-numeric Object." );

        // The format provider is called for these conversions.
        Console.WriteLine( );
        converted = Convert.ToString( Int32A, provider );
        Console.WriteLine( "int      {0}", converted );
        converted = Convert.ToString( DoubleA, provider );
        Console.WriteLine( "double   {0}", converted );
        converted = Convert.ToString( ObjDouble, provider );
        Console.WriteLine( "object   {0}", converted );
        converted = Convert.ToString( DayTimeA, provider );
        Console.WriteLine( "DateTime {0}", converted );

        // The format provider is not called for these conversions.
        Console.WriteLine( );
        converted = Convert.ToString( BoolA, provider );
        Console.WriteLine( "bool     {0}", converted );
        converted = Convert.ToString( StringA, provider );
        Console.WriteLine( "string   {0}", converted );
        converted = Convert.ToString( CharA, provider );
        Console.WriteLine( "char     {0}", converted );
        converted = Convert.ToString( TSpanA, provider );
        Console.WriteLine( "TimeSpan {0}", converted );
        converted = Convert.ToString( ObjOther, provider );
        Console.WriteLine( "object   {0}", converted );
    }
}

/*
This example of Convert.ToString( non-numeric, IFormatProvider )
generates the following output. The provider type, argument type,
and argument value are displayed.

Note: The IFormatProvider object is not called for Boolean, String,
Char, TimeSpan, and non-numeric Object.

System.Globalization.NumberFormatInfo   int      -252645135
System.Globalization.NumberFormatInfo   double   61680.3855
System.Globalization.NumberFormatInfo   object   -98765.4321
System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM

bool     True
string   Qwerty
char     $
TimeSpan 00:18:00
object   DummyProvider

*/
// Example of Convert.ToString(non-numeric types, IFormatProvider).
open System
open System.Globalization

// Create an instance of the IFormatProvider with an object expression.
let provider =
    { new IFormatProvider with
        // Normally, GetFormat returns an object of the requested type
        // (usually itself) if it is able; otherwise, it returns Nothing.
        member _.GetFormat(argType: Type) =
            // Here, the type of argType is displayed, and GetFormat
            // always returns Nothing.
            printf $"{argType,-40}"
            null 
    }

// Convert these values using DummyProvider.
let Int32A     = -252645135
let DoubleA    = 61680.3855
let ObjDouble  = -98765.4321 :> obj
let DayTimeA   = DateTime(2001, 9, 11, 13, 45, 0)

let BoolA      = true
let StringA    = "Qwerty"
let CharA      = '$'
let TSpanA     = TimeSpan(0, 18, 0)
let ObjOther   = provider :> obj

[<EntryPoint>]
let main _ =
    printfn
        """This example of Convert.ToString(non-numeric, IFormatProvider) 
generates the following output. The provider type, argument type, 
and argument value are displayed.

Note: The IFormatProvider object is not called for Boolean, String, 
Char, TimeSpan, and non-numeric Object."""

    // The format provider is called for these conversions.
    printfn ""
    let converted = Convert.ToString(Int32A, provider)
    printfn $"int      {converted}"
    let converted = Convert.ToString(DoubleA, provider)
    printfn $"double   {converted}"
    let converted = Convert.ToString(ObjDouble, provider)
    printfn $"object   {converted}"
    let converted = Convert.ToString(DayTimeA, provider)
    printfn $"DateTime {converted}"

    // The format provider is not called for these conversions.
    printfn ""
    let converted = Convert.ToString(BoolA, provider)
    printfn $"bool     {converted}"
    let converted = Convert.ToString(StringA, provider)
    printfn $"string   {converted}"
    let converted = Convert.ToString(CharA, provider)
    printfn $"char     {converted}"
    let converted = Convert.ToString(TSpanA, provider)
    printfn $"TimeSpan {converted}"
    let converted = Convert.ToString(ObjOther, provider)
    printfn $"object   {converted}"

    0

// This example of Convert.ToString(non-numeric, IFormatProvider)
// generates the following output. The provider type, argument type,
// and argument value are displayed.
//
// Note: The IFormatProvider object is not called for Boolean, String,
// Char, TimeSpan, and non-numeric Object.
//
// System.Globalization.NumberFormatInfo   int      -252645135
// System.Globalization.NumberFormatInfo   double   61680.3855
// System.Globalization.NumberFormatInfo   object   -98765.4321
// System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM
//
// bool     True
// string   Qwerty
// char     $
// TimeSpan 00:18:00
// object   DummyProvider
' Example of Convert.ToString( non-numeric types, IFormatProvider ).
Imports System.Globalization

' An instance of this class can be passed to methods that require 
' an IFormatProvider.
Public Class DummyProvider
    Implements IFormatProvider

    ' Normally, GetFormat returns an object of the requested type
    ' (usually itself) if it is able; otherwise, it returns Nothing. 
    Public Function GetFormat( argType As Type ) As Object _
        Implements IFormatProvider.GetFormat

        ' Here, the type of argType is displayed, and GetFormat
        ' always returns Nothing.
        Console.Write( "{0,-40}", argType.ToString( ) )
        Return Nothing

    End Function 
End Class

Module ConvertNonNumericProviderDemo

    Sub Main( )

        ' Create an instance of the IFormatProvider.
        Dim provider    As New DummyProvider( )
        Dim converted   As String

        ' Convert these values using DummyProvider.
        Dim Int32A      As Integer  = -252645135   
        Dim DoubleA     As Double   = 61680.3855
        Dim ObjDouble   As Object   = CType( -98765.4321, Object )
        Dim DayTimeA    As DateTime = _
                            new DateTime( 2001, 9, 11, 13, 45, 0 )

        Dim BoolA       As Boolean  = True
        Dim StringA     As String   = "Qwerty"
        Dim CharA       As Char     = "$"c
        Dim TSpanA      As TimeSpan = New TimeSpan( 0, 18, 0 )
        Dim ObjOther    As Object   = CType( provider, Object )

        Console.WriteLine( "This example of " & _
            "Convert.ToString( non-numeric, IFormatProvider ) " & _
            vbCrLf & "generates the following output. The " & _
            "provider type, argument type, " & vbCrLf & "and " & _
            "argument value are displayed." )
        Console.WriteLine( vbCrLf & _
            "Note: The IFormatProvider object is not called for " & _
            "Boolean, String, " & vbCrLf & "Char, TimeSpan, " & _
            "and non-numeric Object." )

        ' The format provider is called for these conversions.
        Console.WriteLine( )
        converted =  Convert.ToString( Int32A, provider )
        Console.WriteLine( "Int32    {0}", converted )
        converted =  Convert.ToString( DoubleA, provider )
        Console.WriteLine( "Double   {0}", converted )
        converted =  Convert.ToString( ObjDouble, provider )
        Console.WriteLine( "Object   {0}", converted )
        converted =  Convert.ToString( DayTimeA, provider )
        Console.WriteLine( "DateTime {0}", converted )

        ' The format provider is not called for these conversions.
        Console.WriteLine( )
        converted =  Convert.ToString( BoolA, provider )
        Console.WriteLine( "Boolean  {0}", converted )
        converted =  Convert.ToString( StringA, provider )
        Console.WriteLine( "String   {0}", converted )
        converted =  Convert.ToString( CharA, provider )
        Console.WriteLine( "Char     {0}", converted )
        converted =  Convert.ToString( TSpanA, provider )
        Console.WriteLine( "TimeSpan {0}", converted )
        converted =  Convert.ToString( ObjOther, provider )
        Console.WriteLine( "Object   {0}", converted )

    End Sub
End Module

' This example of Convert.ToString( non-numeric, IFormatProvider )
' generates the following output. The provider type, argument type,
' and argument value are displayed.
'
' Note: The IFormatProvider object is not called for Boolean, String,
' Char, TimeSpan, and non-numeric Object.
' 
' System.Globalization.NumberFormatInfo   Int32    -252645135
' System.Globalization.NumberFormatInfo   Double   61680.3855
' System.Globalization.NumberFormatInfo   Object   -98765.4321
' System.Globalization.DateTimeFormatInfo DateTime 9/11/2001 1:45:00 PM
' 
' Boolean  True
' String   Qwerty
' Char     $
' TimeSpan 00:18:00
' Object   DummyProvider

注解

此实现与 相同 Boolean.ToString。 对于 值,Boolean.TrueStringtrue它返回 ;Boolean.FalseString对于 值,则返回 false

适用于

ToString(Byte, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定的 8 位无符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::Byte value, IFormatProvider ^ provider);
public static string ToString (byte value, IFormatProvider provider);
public static string ToString (byte value, IFormatProvider? provider);
static member ToString : byte * IFormatProvider -> string
Public Shared Function ToString (value As Byte, provider As IFormatProvider) As String

参数

value
Byte

要转换的 8 位无符号整数。

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。

返回

value 的字符串表示形式。

示例

以下示例使用 en-US 和 fr-FR 区域性的格式设置约定,将无符号字节数组中的每个元素转换为其等效的字符串表示形式。 由于默认情况下,“G”说明符在字节值的字符串表示形式中仅输出十进制数字,因此 参数 provider 不会影响返回的字符串的格式设置。

byte[] numbers = { 12, 100, Byte.MaxValue };
// Define the culture names used to display them.
string[] cultureNames = { "en-US", "fr-FR" };

foreach (byte number in numbers)
{
   Console.WriteLine("{0}:", Convert.ToString(number,
                             System.Globalization.CultureInfo.InvariantCulture));
   foreach (string cultureName in cultureNames)
   {
      System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(cultureName);
      Console.WriteLine("   {0}: {1,20}",
                        culture.Name, Convert.ToString(number, culture));
   }
   Console.WriteLine();
}
// The example displays the following output:
//       12:
//          en-US:                   12
//          fr-FR:                   12
//
//       100:
//          en-US:                  100
//          fr-FR:                  100
//
//       255:
//          en-US:                  255
//          fr-FR:                  255
let numbers = [| 12uy; 100uy; Byte.MaxValue |]
// Define the culture names used to display them.
let cultureNames = [| "en-US"; "fr-FR" |]

for number in numbers do
    printfn $"{Convert.ToString(number, CultureInfo.InvariantCulture)}:"
    for cultureName in cultureNames do
        let culture = CultureInfo cultureName
        printfn $"   {culture.Name}: {Convert.ToString(number, culture),20}"
    printfn ""
// The example displays the following output:
//       12:
//          en-US:                   12
//          fr-FR:                   12
//
//       100:
//          en-US:                  100
//          fr-FR:                  100
//
//       255:
//          en-US:                  255
//          fr-FR:                  255
' Define an array of numbers to display.
Dim numbers() As Byte = { 12, 100, Byte.MaxValue }
' Define the culture names used to display them.
Dim cultureNames() As String = { "en-US", "fr-FR" }

For Each number As Byte In numbers
   Console.WriteLine("{0}:", Convert.ToString(number, _
                             System.Globalization.CultureInfo.InvariantCulture))
   For Each cultureName As String In cultureNames
      Dim culture As New System.Globalization.CultureInfo(cultureName)
      Console.WriteLine("   {0}: {1,20}", _
                        culture.Name, Convert.ToString(number, culture))
   Next
   Console.WriteLine()
Next   
' The example displays the following output:
'       12:
'          en-US:                   12
'          fr-FR:                   12
'       
'       100:
'          en-US:                  100
'          fr-FR:                  100
'       
'       255:
'          en-US:                  255
'          fr-FR:                  255

注解

此实现与 相同 Byte.ToString

适用于

ToString(Boolean)

将指定的布尔值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(bool value);
public static string ToString (bool value);
static member ToString : bool -> string
Public Shared Function ToString (value As Boolean) As String

参数

value
Boolean

要转换的布尔值。

返回

value 的字符串表示形式。

示例

下面的示例演示如何使用 ToString将 转换为 。BooleanString 它还说明转换返回的字符串等于 Boolean.TrueStringBoolean.FalseString

bool falseFlag = false;
bool trueFlag = true;

Console.WriteLine(Convert.ToString(falseFlag));
Console.WriteLine(Convert.ToString(falseFlag).Equals(Boolean.FalseString));
Console.WriteLine(Convert.ToString(trueFlag));
Console.WriteLine(Convert.ToString(trueFlag).Equals(Boolean.TrueString));
// The example displays the following output:
//       False
//       True
//       True
//       True
let falseFlag = false
let trueFlag = true

printfn $"{Convert.ToString falseFlag}"
printfn $"{Convert.ToString(falseFlag).Equals Boolean.FalseString}"
printfn $"{Convert.ToString trueFlag}"
printfn $"{Convert.ToString(trueFlag).Equals(Boolean.TrueString)}"
// The example displays the following output:
//       False
//       True
//       True
//       True
Dim falseFlag As Boolean = False
Dim trueFlag As Boolean = True

Console.WriteLine(Convert.ToString(falseFlag))
Console.WriteLine(Convert.ToString(falseFlag).Equals(Boolean.FalseString))
Console.WriteLine(Convert.ToString(trueFlag))
Console.WriteLine(Convert.ToString(trueFlag).Equals(Boolean.TrueString))
' The example displays the following output:
'       False
'       True
'       True
'       True
let falseFlag = false
let trueFlag = true

Console.WriteLine (Convert.ToString falseFlag)
Console.WriteLine (Convert.ToString falseFlag=Boolean.FalseString)
Console.WriteLine (Convert.ToString trueFlag)
Console.WriteLine (Convert.ToString trueFlag=Boolean.TrueString)
// The example displays the following output:
//       False
//       True
//       True
//       True

注解

此实现与 相同 Boolean.ToString。 对于 值,Boolean.TrueStringtrue它返回 ;Boolean.FalseString对于 值,则返回 false

适用于

ToString(Byte)

将指定的 8 位无符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::Byte value);
public static string ToString (byte value);
static member ToString : byte -> string
Public Shared Function ToString (value As Byte) As String

参数

value
Byte

要转换的 8 位无符号整数。

返回

value 的字符串表示形式。

示例

以下示例将数组中的每个 Byte 值转换为字符串。

using System;

public class Example
{
   public static void Main()
   {
      byte[] values = { Byte.MinValue, 12, 100, 179, Byte.MaxValue } ;

      foreach (var value in values)
         Console.WriteLine("{0,3} ({1}) --> {2}", value,
                           value.GetType().Name,
                           Convert.ToString(value));
   }
}
// The example displays the following output:
//       0 (Byte) --> 0
//      12 (Byte) --> 12
//     100 (Byte) --> 100
//     179 (Byte) --> 179
//     255 (Byte) --> 255
open System

let values = 
   [| Byte.MinValue; 12uy; 100uy; 179uy; Byte.MaxValue |]

for value in values do
   printfn $"{value,3} ({value.GetType().Name}) --> {Convert.ToString value}"
                     
// The example displays the following output:
//       0 (Byte) --> 0
//      12 (Byte) --> 12
//     100 (Byte) --> 100
//     179 (Byte) --> 179
//     255 (Byte) --> 255
Public Module Example
   Public Sub Main()
      Dim values() As Byte = { Byte.MinValue, 12, 100, 179, Byte.MaxValue }

      For Each value In values
         Console.WriteLine("{0,3} ({1}) --> {2}", value, 
                           value.GetType().Name, 
                           Convert.ToString(value))
      Next                           
   End Sub
End Module
' The example displays the following output:
'       0 (Byte) --> 0
'      12 (Byte) --> 12
'     100 (Byte) --> 100
'     179 (Byte) --> 179
'     255 (Byte) --> 255
let values = [ Byte.MinValue; 12uy; 100uy; 179uy; Byte.MaxValue ]
for value in values do
    printfn "% 4i (%s) --> %s" value (value.GetType().Name) (Convert.ToString value)
// The example displays the following output:
//       0 (Byte) --> 0
//      12 (Byte) --> 12
//     100 (Byte) --> 100
//     179 (Byte) --> 179
//     255 (Byte) --> 255

注解

此实现与 相同 Byte.ToString()

适用于

ToString(Char)

将指定的 Unicode 字符的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(char value);
public static string ToString (char value);
static member ToString : char -> string
Public Shared Function ToString (value As Char) As String

参数

value
Char

要转换的 Unicode 字符。

返回

value 的字符串表示形式。

示例

以下示例将 Char 转换为 String

public:
   void ConvertStringChar( String^ stringVal )
   {
      Char charVal = 'a';
      
      // A String must be one character long to convert to char.
      try
      {
         charVal = System::Convert::ToChar( stringVal );
         System::Console::WriteLine( " {0} as a char is {1}",
            stringVal, charVal );
      }
      catch ( System::FormatException^ ) 
      {
         System::Console::WriteLine(
            "The String is longer than one character." );
      }
      catch ( System::ArgumentNullException^ ) 
      {
         System::Console::WriteLine( "The String is 0." );
      }
      
      // A char to String conversion will always succeed.
      stringVal = System::Convert::ToString( charVal );
      System::Console::WriteLine( "The character as a String is {0}",
         stringVal );
   }
public void ConvertStringChar(string stringVal) {
    char charVal = 'a';

    // A string must be one character long to convert to char.
    try {
        charVal = System.Convert.ToChar(stringVal);
        System.Console.WriteLine("{0} as a char is {1}",
            stringVal, charVal);
    }
    catch (System.FormatException) {
        System.Console.WriteLine(
            "The string is longer than one character.");
    }
    catch (System.ArgumentNullException) {
        System.Console.WriteLine("The string is null.");
    }

    // A char to string conversion will always succeed.
    stringVal = System.Convert.ToString(charVal);
    System.Console.WriteLine("The character as a string is {0}",
            stringVal);
}
let convertStringChar (stringVal: string) =
    let charVal = 'a'

    // A string must be one character long to convert to char.
    try
        let charVal = Convert.ToChar stringVal
        printfn $"{stringVal} as a char is {charVal}"
    with
    | :? FormatException ->
        printfn "The string is longer than one character."
    | :? ArgumentNullException ->
        printfn "The string is null."

    // A char to string conversion will always succeed.
    let stringVal = Convert.ToString charVal
    printfn $"The character as a string is {stringVal}"
Public Sub ConvertStringChar(ByVal stringVal As String)
    Dim charVal As Char = "a"c

    ' A string must be one character long to convert to char.
    Try
        charVal = System.Convert.ToChar(stringVal)
        System.Console.WriteLine("{0} as a char is {1}", _
                                  stringVal, charVal)
    Catch exception As System.FormatException
        System.Console.WriteLine( _
         "The string is longer than one character.")
    Catch exception As System.ArgumentNullException
        System.Console.WriteLine("The string is null.")
    End Try

    ' A char to string conversion will always succeed.
    stringVal = System.Convert.ToString(charVal)
    System.Console.WriteLine("The character as a string is {0}", _
                              stringVal)
End Sub

注解

此实现与 相同 Char.ToString

适用于

ToString(DateTime)

将指定的 DateTime 的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(DateTime value);
public static string ToString (DateTime value);
static member ToString : DateTime -> string
Public Shared Function ToString (value As DateTime) As String

参数

value
DateTime

要转换的日期和时间值。

返回

value 的字符串表示形式。

示例

以下示例将值数组 DateTime 中的每个元素转换为 String 值。

DateTime[] dates = { new DateTime(2009, 7, 14),
                     new DateTime(1, 1, 1, 18, 32, 0),
                     new DateTime(2009, 2, 12, 7, 16, 0) };
string result;

foreach (DateTime dateValue in dates)
{
   result = Convert.ToString(dateValue);
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        dateValue.GetType().Name, dateValue,
                        result.GetType().Name, result);
}
// The example displays the following output:
//    Converted the DateTime value 7/14/2009 12:00:00 AM to a String value 7/14/2009 12:00:00 AM.
//    Converted the DateTime value 1/1/0001 06:32:00 PM to a String value 1/1/0001 06:32:00 PM.
//    Converted the DateTime value 2/12/2009 07:16:00 AM to a String value 2/12/2009 07:16:00 AM.
let dates =
    [| DateTime(2009, 7, 14)
       DateTime(1, 1, 1, 18, 32, 0)
       DateTime(2009, 2, 12, 7, 16, 0) |]

for dateValue in dates do
    let result = Convert.ToString dateValue
    printfn $"Converted the {dateValue.GetType().Name} value {dateValue} to the {result.GetType().Name} value {result}."
// The example displays the following output:
//    Converted the DateTime value 7/14/2009 12:00:00 AM to a String value 7/14/2009 12:00:00 AM.
//    Converted the DateTime value 1/1/0001 06:32:00 PM to a String value 1/1/0001 06:32:00 PM.
//    Converted the DateTime value 2/12/2009 07:16:00 AM to a String value 2/12/2009 07:16:00 AM.
Dim dates() As Date = { #07/14/2009#, #6:32PM#, #02/12/2009 7:16AM#}
Dim result As String

For Each dateValue As Date In dates
   result = Convert.ToString(dateValue)
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
                        dateValue.GetType().Name, dateValue, _
                        result.GetType().Name, result)
Next
' The example displays the following output:
'    Converted the DateTime value 7/14/2009 12:00:00 AM to a String value 7/14/2009 12:00:00 AM.
'    Converted the DateTime value 1/1/0001 06:32:00 PM to a String value 1/1/0001 06:32:00 PM.
'    Converted the DateTime value 2/12/2009 07:16:00 AM to a String value 2/12/2009 07:16:00 AM.

注解

此实现与 相同 DateTime.ToString()。 它使用当前区域性的格式设置约定和“G”格式说明符将值转换为 DateTime 其字符串表示形式。

适用于

ToString(Double)

将指定的双精度浮点数的值转换其等效的字符串表示形式。

public:
 static System::String ^ ToString(double value);
public static string ToString (double value);
static member ToString : double -> string
Public Shared Function ToString (value As Double) As String

参数

value
Double

要转换的双精度浮点数。

返回

value 的字符串表示形式。

示例

以下示例将 Double 转换为 String

public:
   void ConvertDoubleString( double doubleVal )
   {
      String^ stringVal;
      
      // A conversion from Double to String cannot overflow.
      stringVal = System::Convert::ToString( doubleVal );
      System::Console::WriteLine( " {0} as a String is: {1}",
         doubleVal, stringVal );
      try
      {
         doubleVal = System::Convert::ToDouble( stringVal );
         System::Console::WriteLine( " {0} as a double is: {1}",
         stringVal, doubleVal );
      }
      catch ( System::OverflowException^ ) 
      {
         System::Console::WriteLine( "Conversion from String-to-double overflowed." );
      }
      catch ( System::FormatException^ ) 
      {
         System::Console::WriteLine( "The String was not formatted as a double." );
      }
      catch ( System::ArgumentException^ ) 
      {
         System::Console::WriteLine( "The String pointed to null." );
      }
   }
public void ConvertDoubleString(double doubleVal) {
    
    string	stringVal;

    // A conversion from Double to string cannot overflow.
    stringVal = System.Convert.ToString(doubleVal);
    System.Console.WriteLine("{0} as a string is: {1}",
        doubleVal, stringVal);

    try {
        doubleVal = System.Convert.ToDouble(stringVal);
        System.Console.WriteLine("{0} as a double is: {1}",
            stringVal, doubleVal);
    }
    catch (System.OverflowException) {
        System.Console.WriteLine(
            "Conversion from string-to-double overflowed.");
    }
    catch (System.FormatException) {
        System.Console.WriteLine(
            "The string was not formatted as a double.");
    }
    catch (System.ArgumentException) {
        System.Console.WriteLine(
            "The string pointed to null.");
    }
}
let convertDoubleString (doubleVal: float) =
    // A conversion from Double to string cannot overflow.
    let stringVal = Convert.ToString doubleVal
    printfn $"{doubleVal} as a string is: {stringVal}"

    try
        let doubleVal = Convert.ToDouble stringVal
        printfn $"{stringVal} as a double is: {doubleVal}"
    with
    | :? OverflowException ->
        printfn "Conversion from string-to-double overflowed."
    | :? FormatException ->
        printfn "The string was not formatted as a double."
    | :? ArgumentException ->
        printfn "The string pointed to null."
Public Sub ConvertDoubleString(ByVal doubleVal As Double)

    Dim stringVal As String

    ' A conversion from Double to String cannot overflow.       
    stringVal = System.Convert.ToString(doubleVal)
    System.Console.WriteLine("{0} as a String is: {1}", _
                              doubleVal, stringVal)

    Try
        doubleVal = System.Convert.ToDouble(stringVal)
        System.Console.WriteLine("{0} as a Double is: {1}", _
                                  stringVal, doubleVal)
    Catch exception As System.OverflowException
        System.Console.WriteLine( _
            "Overflow in String-to-Double conversion.")
    Catch exception As System.FormatException
        System.Console.WriteLine( _
            "The string is not formatted as a Double.")
    Catch exception As System.ArgumentException
        System.Console.WriteLine("The string is null.")
    End Try

End Sub

注解

此实现与 相同 Double.ToString()

适用于

ToString(Int16)

将指定的 16 位带符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(short value);
public static string ToString (short value);
static member ToString : int16 -> string
Public Shared Function ToString (value As Short) As String

参数

value
Int16

要转换的 16 位带符号整数。

返回

value 的字符串表示形式。

示例

以下示例将 16 位整数数组中的每个元素转换为其等效的字符串表示形式。

short[] numbers = { Int16.MinValue, -138, 0, 19, Int16.MaxValue };
string result;

foreach (short number in numbers)
{
   result = Convert.ToString(number);
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
}
// The example displays the following output:
//    Converted the Int16 value -32768 to the String value -32768.
//    Converted the Int16 value -138 to the String value -138.
//    Converted the Int16 value 0 to the String value 0.
//    Converted the Int16 value 19 to the String value 19.
//    Converted the Int16 value 32767 to the String value 32767.
let numbers = [| Int16.MinValue; -138s; 0s; 19s; Int16.MaxValue |]

for number in numbers do
    let result = Convert.ToString number
    printfn $"Converted the {number.GetType().Name} value {number} to the {result.GetType().Name} value {result}."
// The example displays the following output:
//    Converted the Int16 value -32768 to the String value -32768.
//    Converted the Int16 value -138 to the String value -138.
//    Converted the Int16 value 0 to the String value 0.
//    Converted the Int16 value 19 to the String value 19.
//    Converted the Int16 value 32767 to the String value 32767.
Dim numbers() As Short = { Int16.MinValue, -138, 0, 19, Int16.MaxValue }
Dim result As String

For Each number As Short In numbers
   result = Convert.ToString(number)
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
                        number.GetType().Name, number, _
                        result.GetType().Name, result)
Next     
' The example displays the following output:
'    Converted the Int16 value -32768 to the String value -32768.
'    Converted the Int16 value -138 to the String value -138.
'    Converted the Int16 value 0 to the String value 0.
'    Converted the Int16 value 19 to the String value 19.
'    Converted the Int16 value 32767 to the String value 32767.

注解

此实现与 相同 Int16.ToString()

适用于

ToString(Int32)

将指定的 32 位带符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(int value);
public static string ToString (int value);
static member ToString : int -> string
Public Shared Function ToString (value As Integer) As String

参数

value
Int32

要转换的 32 位带符号整数。

返回

value 的字符串表示形式。

示例

以下示例将 ToString(Int32) 方法与 ToString(UInt16, IFormatProvider) 方法进行比较。 它定义一个自定义 NumberFormatInfo 对象,该对象使用 sting“减号”来表示负号。 它使用默认格式 (当前区域性) 和自定义格式提供程序的格式约定,将整数数组中的每个元素转换为其等效的字符串表示形式。

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Create a NumberFormatInfo object and set its NegativeSigns
      // property to use for integer formatting.
      NumberFormatInfo provider = new NumberFormatInfo();
      provider.NegativeSign = "minus ";

      int[] values = { -20, 0, 100 };

      Console.WriteLine("{0,-8} --> {1,10} {2,10}\n", "Value",
                         CultureInfo.CurrentCulture.Name,
                         "Custom");
      foreach (int value in values)
         Console.WriteLine("{0,-8} --> {1,10} {2,10}",
                           value, Convert.ToString(value),
                           Convert.ToString(value, provider));
      // The example displays output like the following:
      //       Value    -->      en-US     Custom
      //
      //       -20      -->        -20   minus 20
      //       0        -->          0          0
      //       100      -->        100        100
   }
}
open System
open System.Globalization

// Create a NumberFormatInfo object and set its NegativeSigns
// property to use for integer formatting.
let provider = NumberFormatInfo()
provider.NegativeSign <- "minus "

let values = [| -20; 0; 100 |]

printfn $"""{CultureInfo.CurrentCulture.Name,-8} --> {"Value",10} {"Custom",10}\n"""
                    
for value in values do
    printfn $"{value,-8} --> {Convert.ToString value,10} {Convert.ToString(value, provider),10}"
// The example displays output like the following:
//       Value    -->      en-US     Custom
//
//       -20      -->        -20   minus 20
//       0        -->          0          0
//       100      -->        100        100
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Create a NumberFormatInfo object and set its NegativeSigns
      ' property to use for integer formatting.
      Dim provider As New NumberFormatInfo()
      provider.NegativeSign = "minus "

      Dim values() As Integer = { -20, 0, 100 }

      Console.WriteLine("{0,-8} --> {1,10} {2,10}", "Value",
                         CultureInfo.CurrentCulture.Name,
                         "Custom")
      Console.WriteLine()
      For Each value As Integer In values
         Console.WriteLine("{0,-8} --> {1,10} {2,10}",
                           value, Convert.ToString(value),
                           Convert.ToString(value, provider))
      Next
   End Sub
End Module
' The example displays output like the following:
'       Value    -->      en-US     Custom
'
'       -20      -->        -20   minus 20
'       0        -->          0          0
'       100      -->        100        100

注解

此实现与 相同 Int32.ToString()value它通过使用当前区域性的格式设置约定来设置格式。

适用于

ToString(Decimal)

将指定的十进制数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::Decimal value);
public static string ToString (decimal value);
static member ToString : decimal -> string
Public Shared Function ToString (value As Decimal) As String

参数

value
Decimal

要转换的十进制数。

返回

value 的字符串表示形式。

示例

以下示例将 Decimal 转换为 String

public:
   void ConvertStringDecimal( String^ stringVal )
   {
      Decimal decimalVal = 0;

      try
      {
         decimalVal = System::Convert::ToDecimal( stringVal );
         System::Console::WriteLine( "The String as a decimal is {0}.",
         decimalVal );
      }
      catch ( System::OverflowException^ ) 
      {
         System::Console::WriteLine(
            "The conversion from String to decimal overflowed." );
      }
      catch ( System::FormatException^ ) 
      {
         System::Console::WriteLine(
            "The String is not formatted as a decimal." );
      }
      catch ( System::ArgumentNullException^ ) 
      {
         System::Console::WriteLine( "The String is 0." );
      }
      
      // Decimal to String conversion will not overflow.
      stringVal = System::Convert::ToString( decimalVal );
      System::Console::WriteLine(
         "The decimal as a String is {0}.", stringVal );
   }
public void ConvertStringDecimal(string stringVal) {
    decimal decimalVal = 0;
    
    try {
        decimalVal = System.Convert.ToDecimal(stringVal);
        System.Console.WriteLine(
            "The string as a decimal is {0}.", decimalVal);
    }
    catch (System.OverflowException){
        System.Console.WriteLine(
            "The conversion from string to decimal overflowed.");
    }
    catch (System.FormatException) {
        System.Console.WriteLine(
            "The string is not formatted as a decimal.");
    }
    catch (System.ArgumentNullException) {
        System.Console.WriteLine(
            "The string is null.");
    }

    // Decimal to string conversion will not overflow.
    stringVal = System.Convert.ToString(decimalVal);
    System.Console.WriteLine(
        "The decimal as a string is {0}.", stringVal);
}
let convertStringDecimal (stringVal: string) =
    let decimalVal = 0m

    try
        let decimalVal = Convert.ToDecimal(stringVal)
        printfn $"The string as a decimal is {decimalVal}."
    with
    | :? OverflowException ->
        printfn "The conversion from string to decimal overflowed."
    | :? FormatException ->
        printfn "The string is not formatted as a decimal."
    | :? ArgumentNullException ->
        printfn "The string is null."

    // Decimal to string conversion will not overflow.
    let stringVal = Convert.ToString decimalVal
    printfn $"The decimal as a string is {stringVal}."
Public Sub ConvertStringDecimal(ByVal stringVal As String)
    Dim decimalVal As Decimal = 0

    Try
        decimalVal = System.Convert.ToDecimal(stringVal)
        System.Console.WriteLine("The string as a decimal is {0}.", _
                                  decimalVal)
    Catch exception As System.OverflowException
        System.Console.WriteLine( _
            "Overflow in string-to-decimal conversion.")
    Catch exception As System.FormatException
        System.Console.WriteLine( _
            "The string is not formatted as a decimal.")
    Catch exception As System.ArgumentException
        System.Console.WriteLine("The string is null.")
    End Try

    ' Decimal to string conversion will not overflow.
    stringVal = System.Convert.ToString(decimalVal)
    System.Console.WriteLine("The decimal as a string is {0}.", _
                              stringVal)
End Sub

注解

此实现与 相同 Decimal.ToString()

适用于

ToString(Object)

将指定对象的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::Object ^ value);
public static string ToString (object value);
public static string? ToString (object? value);
static member ToString : obj -> string
Public Shared Function ToString (value As Object) As String

参数

value
Object

一个对象,用于提供要转换的值,或 null

返回

value 的字符串表现形式;如果 valuenull,则为 Empty

示例

以下示例将对象数组中的每个元素转换为其等效的字符串表示形式。

object[] values = { false, 12.63m, new DateTime(2009, 6, 1, 6, 32, 15), 16.09e-12,
                    'Z', 15.15322, SByte.MinValue, Int32.MaxValue };
string result;

foreach (object value in values)
{
   result = Convert.ToString(value);
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        value.GetType().Name, value,
                        result.GetType().Name, result);
}
// The example displays the following output:
//    Converted the Boolean value False to the String value False.
//    Converted the Decimal value 12.63 to the String value 12.63.
//    Converted the DateTime value 6/1/2009 06:32:15 AM to the String value 6/1/2009 06:32:15 AM.
//    Converted the Double value 1.609E-11 to the String value 1.609E-11.
//    Converted the Char value Z to the String value Z.
//    Converted the Double value 15.15322 to the String value 15.15322.
//    Converted the SByte value -128 to the String value -128.
//    Converted the Int32 value 2147483647 to the String value 2147483647.
let values: obj[] =
    [| false; 12.63m; DateTime(2009, 6, 1, 6, 32, 15)
       16.09e-12; 'Z'; 15.15322; SByte.MinValue; Int32.MaxValue |]

for value in values do
    let result = Convert.ToString value
    printfn $"Converted the {value.GetType().Name} value {value} to the {result.GetType().Name} value {result}."
// The example displays the following output:
//    Converted the Boolean value False to the String value False.
//    Converted the Decimal value 12.63 to the String value 12.63.
//    Converted the DateTime value 6/1/2009 06:32:15 AM to the String value 6/1/2009 06:32:15 AM.
//    Converted the Double value 1.609E-11 to the String value 1.609E-11.
//    Converted the Char value Z to the String value Z.
//    Converted the Double value 15.15322 to the String value 15.15322.
//    Converted the SByte value -128 to the String value -128.
//    Converted the Int32 value 2147483647 to the String value 2147483647.
Dim values() As Object = { False, 12.63d, #06/01/2009 6:32:15#, 16.09e-12, _
                           "Z"c, 15.15322, SByte.MinValue, Int32.MaxValue}
Dim result As String

For Each value As Object In values
   result = Convert.ToString(value)
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
                        value.GetType().Name, value, _
                        result.GetType().Name, result)
Next
' The example displays the following output:
'    Converted the Boolean value False to the String value False.
'    Converted the Decimal value 12.63 to the String value 12.63.
'    Converted the DateTime value 6/1/2009 06:32:15 AM to the String value 6/1/2009 06:32:15 AM.
'    Converted the Double value 1.609E-11 to the String value 1.609E-11.
'    Converted the Char value Z to the String value Z.
'    Converted the Double value 15.15322 to the String value 15.15322.
'    Converted the SByte value -128 to the String value -128.
'    Converted the Int32 value 2147483647 to the String value 2147483647.

注解

为了转换为 value 其字符串表示形式, 方法尝试调用 IConvertible.ToStringvalue实现。 如果未 value 实现 IConvertible 接口,则 方法会尝试调用 IFormattable.ToStringvalue实现。 如果 value 未实现 IFormattable 接口,则 方法将调用 ToString 基础类型的 value方法。

适用于

ToString(SByte)

重要

此 API 不符合 CLS。

将指定的 8 位带符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::SByte value);
[System.CLSCompliant(false)]
public static string ToString (sbyte value);
[<System.CLSCompliant(false)>]
static member ToString : sbyte -> string
Public Shared Function ToString (value As SByte) As String

参数

value
SByte

要转换的 8 位带符号整数。

返回

value 的字符串表示形式。

属性

示例

以下示例将带符号字节数组中的每个元素转换为其等效的字符串表示形式。

sbyte[] numbers = { SByte.MinValue, -12, 0, 16, SByte.MaxValue };
string result;

foreach (sbyte number in numbers)
{
   result = Convert.ToString(number);
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
}
// The example displays the following output:
//    Converted the SByte value -128 to the String value -128.
//    Converted the SByte value -12 to the String value -12.
//    Converted the SByte value 0 to the String value 0.
//    Converted the SByte value 16 to the String value 16.
//    Converted the SByte value 127 to the String value 127.
let numbers = [| SByte.MinValue; -12y; 0y; 16y; SByte.MaxValue |]

for number in numbers do
    let result = Convert.ToString number
    printfn $"Converted the {number.GetType().Name} value {number} to the {result.GetType().Name} value {result}."
// The example displays the following output:
//    Converted the SByte value -128 to the String value -128.
//    Converted the SByte value -12 to the String value -12.
//    Converted the SByte value 0 to the String value 0.
//    Converted the SByte value 16 to the String value 16.
//    Converted the SByte value 127 to the String value 127.
Dim numbers() As SByte = { SByte.MinValue, -12, 0, 16, SByte.MaxValue }
Dim result As String

For Each number As SByte In numbers
   result = Convert.ToString(number)
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
                        number.GetType().Name, number, _
                        result.GetType().Name, result)
Next
' The example displays the following output:
'    Converted the SByte value -128 to the String value -128.
'    Converted the SByte value -12 to the String value -12.
'    Converted the SByte value 0 to the String value 0.
'    Converted the SByte value 16 to the String value 16.
'    Converted the SByte value 127 to the String value 127.

注解

此实现与 完全相同 SByte.ToString()

适用于

ToString(Single)

将指定的单精度浮点数的值转换其等效的字符串表示形式。

public:
 static System::String ^ ToString(float value);
public static string ToString (float value);
static member ToString : single -> string
Public Shared Function ToString (value As Single) As String

参数

value
Single

要转换的单精度浮点数。

返回

value 的字符串表示形式。

示例

以下示例将值数组中的每个元素转换为其等效的 Single 字符串表示形式。

float[] numbers = { Single.MinValue, -1011.351f, -17.45f, -3e-16f,
                    0f, 4.56e-12f, 16.0001f, 10345.1221f, Single.MaxValue };
string result;

foreach (float number in numbers)
{
   result = Convert.ToString(number);
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
}
// The example displays the following output:
//    Converted the Single value -3.402823E+38 to the String value -3.402823E+38.
//    Converted the Single value -1011.351 to the String value -1011.351.
//    Converted the Single value -17.45 to the String value -17.45.
//    Converted the Single value -3E-16 to the String value -3E-16.
//    Converted the Single value 0 to the String value 0.
//    Converted the Single value 4.56E-12 to the String value 4.56E-12.
//    Converted the Single value 16.0001 to the String value 16.0001.
//    Converted the Single value 10345.12 to the String value 10345.12.
//    Converted the Single value 3.402823E+38 to the String value 3.402823E+38.
let numbers = 
    [| Single.MinValue; -1011.351f; -17.45f; -3e-16f; 0f; 4.56e-12f; 16.0001f; 10345.1221f; Single.MaxValue |]

for number in numbers do
    let result = Convert.ToString number
    printfn $"Converted the {number.GetType().Name} value {number} to the {result.GetType().Name} value {result}."
// The example displays the following output:
//    Converted the Single value -3.402823E+38 to the String value -3.402823E+38.
//    Converted the Single value -1011.351 to the String value -1011.351.
//    Converted the Single value -17.45 to the String value -17.45.
//    Converted the Single value -3E-16 to the String value -3E-16.
//    Converted the Single value 0 to the String value 0.
//    Converted the Single value 4.56E-12 to the String value 4.56E-12.
//    Converted the Single value 16.0001 to the String value 16.0001.
//    Converted the Single value 10345.12 to the String value 10345.12.
//    Converted the Single value 3.402823E+38 to the String value 3.402823E+38.
Dim numbers() As Single = { Single.MinValue, -1011.351, -17.45, -3e-16, _
                            0, 4.56e-12, 16.0001, 10345.1221, Single.MaxValue }
Dim result As String

For Each number As Single In numbers
   result = Convert.ToString(number)
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
                        number.GetType().Name, number, _
                        result.GetType().Name, result)
Next                            
' The example displays the following output:
'    Converted the Single value -3.402823E+38 to the String value -3.402823E+38.
'    Converted the Single value -1011.351 to the String value -1011.351.
'    Converted the Single value -17.45 to the String value -17.45.
'    Converted the Single value -3E-16 to the String value -3E-16.
'    Converted the Single value 0 to the String value 0.
'    Converted the Single value 4.56E-12 to the String value 4.56E-12.
'    Converted the Single value 16.0001 to the String value 16.0001.
'    Converted the Single value 10345.12 to the String value 10345.12.
'    Converted the Single value 3.402823E+38 to the String value 3.402823E+38.

注解

此实现与 完全相同 Single.ToString()

适用于

ToString(String)

返回指定的字符串实例;不执行任何实际转换。

public:
 static System::String ^ ToString(System::String ^ value);
public static string? ToString (string? value);
public static string ToString (string value);
static member ToString : string -> string
Public Shared Function ToString (value As String) As String

参数

value
String

要返回的字符串。

返回

不经更改即返回 value

示例

以下示例将字符串传递给 方法, ToString(String) 并调用 Object.ReferenceEquals 方法以确认该方法返回原始字符串。 该示例还调用 String.IsInterned 方法,以确保两个字符串不完全相同,因为原始字符串是实习生。

using System;

public class Example
{
   public static void Main()
   {
      String article = "An";
      String noun = "apple";
      String str1 = String.Format("{0} {1}", article, noun);
      String str2 = Convert.ToString(str1);

      Console.WriteLine("str1 is interned: {0}",
                        ! (String.IsInterned(str1) == null));
      Console.WriteLine("str1 and str2 are the same reference: {0}",
                        Object.ReferenceEquals(str1, str2));
   }
}
// The example displays the following output:
//       str1 is interned: False
//       str1 and str2 are the same reference: True
open System

let article = "An"
let noun = "apple"
let str1 = $"{article} {noun}"
let str2 = Convert.ToString str1

printfn $"str1 is interned: {String.IsInterned str1 <> null}"
                  
printfn $"str1 and str2 are the same reference: {Object.ReferenceEquals(str1, str2)}"
// The example displays the following output:
//       str1 is interned: False
//       str1 and str2 are the same reference: True
Module Example
   Public Sub Main()
      Dim article As String = "An"
      Dim noun As String = "apple"
      Dim str1 As String = String.Format("{0} {1}", article, noun)
      Dim str2 As String = Convert.ToString(str1)

      Console.WriteLine("str1 is interned: {0}",
                        Not String.IsInterned(str1) Is Nothing)
      Console.WriteLine("str1 and str2 are the same reference: {0}",
                        Object.ReferenceEquals(str1, str2))
   End Sub
End Module
' The example displays the following output:
'       str1 is interned: False
'       str1 and str2 are the same reference: True

适用于

ToString(UInt16)

重要

此 API 不符合 CLS。

将指定的 16 位无符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::UInt16 value);
[System.CLSCompliant(false)]
public static string ToString (ushort value);
[<System.CLSCompliant(false)>]
static member ToString : uint16 -> string
Public Shared Function ToString (value As UShort) As String

参数

value
UInt16

要转换的 16 位无符号整数。

返回

value 的字符串表示形式。

属性

示例

以下示例将无符号 16 位整数值数组中的每个元素转换为其等效的字符串表示形式。

ushort[] numbers = { UInt16.MinValue, 103, 1045, UInt16.MaxValue };
string result;

foreach (ushort number in numbers)
{
   result = Convert.ToString(number);
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
}
// The example displays the following output:
//    Converted the UInt16 value 0 to the String value 0.
//    Converted the UInt16 value 103 to the String value 103.
//    Converted the UInt16 value 1045 to the String value 1045.
//    Converted the UInt16 value 65535 to the String value 65535.
let numbers = [| UInt16.MinValue; 103us; 1045us; UInt16.MaxValue |]

for number in numbers do
    let result = Convert.ToString number
    printfn $"Converted the {number.GetType().Name} value {number} to the {result.GetType().Name} value {result}."
// The example displays the following output:
//    Converted the UInt16 value 0 to the String value 0.
//    Converted the UInt16 value 103 to the String value 103.
//    Converted the UInt16 value 1045 to the String value 1045.
//    Converted the UInt16 value 65535 to the String value 65535.
Dim numbers() As UShort = { UInt16.MinValue, 103, 1045, UInt16.MaxValue }
Dim result As String

For Each number As UShort In numbers
   result = Convert.ToString(number)
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
                        number.GetType().Name, number, _
                        result.GetType().Name, result)
Next
' The example displays the following output:
'    Converted the UInt16 value 0 to the String value 0.
'    Converted the UInt16 value 103 to the String value 103.
'    Converted the UInt16 value 1045 to the String value 1045.
'    Converted the UInt16 value 65535 to the String value 65535.

注解

此实现与 完全相同 UInt16.ToString()

适用于

ToString(UInt32)

重要

此 API 不符合 CLS。

将指定的 32 位无符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::UInt32 value);
[System.CLSCompliant(false)]
public static string ToString (uint value);
[<System.CLSCompliant(false)>]
static member ToString : uint32 -> string
Public Shared Function ToString (value As UInteger) As String

参数

value
UInt32

要转换的 32 位无符号整数。

返回

value 的字符串表示形式。

属性

示例

以下示例将无符号整数数组中的每个元素转换为其等效的字符串表示形式。

uint[] numbers = { UInt32.MinValue, 103, 1045, 119543, UInt32.MaxValue };
string result;

foreach (uint number in numbers)
{
   result = Convert.ToString(number);
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
}
// The example displays the following output:
//    Converted the UInt32 value 0 to the String value 0.
//    Converted the UInt32 value 103 to the String value 103.
//    Converted the UInt32 value 1045 to the String value 1045.
//    Converted the UInt32 value 119543 to the String value 119543.
//    Converted the UInt32 value 4294967295 to the String value 4294967295.
let numbers = [| UInt32.MinValue; 103u; 1045u; 119543u; UInt32.MaxValue |]

for number in numbers do
    let result = Convert.ToString number
    printfn $"Converted the {number.GetType().Name} value {number} to the {result.GetType().Name} value {result}."
// The example displays the following output:
//    Converted the UInt32 value 0 to the String value 0.
//    Converted the UInt32 value 103 to the String value 103.
//    Converted the UInt32 value 1045 to the String value 1045.
//    Converted the UInt32 value 119543 to the String value 119543.
//    Converted the UInt32 value 4294967295 to the String value 4294967295.
Dim numbers() As UInteger = { UInt32.MinValue, 103, 1045, 119543, UInt32.MaxValue }
Dim result As String

For Each number As UInteger In numbers
   result = Convert.ToString(number)
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
                        number.GetType().Name, number, _
                        result.GetType().Name, result)
Next
' The example displays the following output:
'    Converted the UInt32 value 0 to the String value 0.
'    Converted the UInt32 value 103 to the String value 103.
'    Converted the UInt32 value 1045 to the String value 1045.
'    Converted the UInt32 value 119543 to the String value 119543.
'    Converted the UInt32 value 4294967295 to the String value 4294967295.

注解

此实现与 完全相同 UInt32.ToString()

适用于

ToString(UInt64)

重要

此 API 不符合 CLS。

将指定的 64 位无符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(System::UInt64 value);
[System.CLSCompliant(false)]
public static string ToString (ulong value);
[<System.CLSCompliant(false)>]
static member ToString : uint64 -> string
Public Shared Function ToString (value As ULong) As String

参数

value
UInt64

要转换的 64 位无符号整数。

返回

value 的字符串表示形式。

属性

示例

以下示例将无符号长整数数组中的每个元素转换为其等效的字符串表示形式。

ulong[] numbers = { UInt64.MinValue, 1031, 189045, UInt64.MaxValue };
string result;

foreach (ulong number in numbers)
{
   result = Convert.ToString(number);
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
}
// The example displays the following output:
//    Converted the UInt64 value 0 to the String value 0.
//    Converted the UInt64 value 1031 to the String value 1031.
//    Converted the UInt64 value 189045 to the String value 189045.
//    Converted the UInt64 value 18446744073709551615 to the String value 18446744073709551615.
let numbers = [| UInt64.MinValue; 1031uL; 189045uL; UInt64.MaxValue |]

for number in numbers do
    let result = Convert.ToString number
    printfn $"Converted the {number.GetType().Name} value {number} to the {result.GetType().Name} value {result}."
// The example displays the following output:
//    Converted the UInt64 value 0 to the String value 0.
//    Converted the UInt64 value 1031 to the String value 1031.
//    Converted the UInt64 value 189045 to the String value 189045.
//    Converted the UInt64 value 18446744073709551615 to the String value 18446744073709551615.
Dim numbers() As ULong = { UInt64.MinValue, 1031, 189045, UInt64.MaxValue }
Dim result As String

For Each number As ULong In numbers
   result = Convert.ToString(number)
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
                        number.GetType().Name, number, _
                        result.GetType().Name, result)
Next
' The example displays the following output:
'    Converted the UInt64 value 0 to the String value 0.
'    Converted the UInt64 value 1031 to the String value 1031.
'    Converted the UInt64 value 189045 to the String value 189045.
'    Converted the UInt64 value 18446744073709551615 to the String value 18446744073709551615.

注解

此实现与 完全相同 UInt64.ToString()

适用于

ToString(Int64)

将指定的 64 位带符号整数的值转换为其等效的字符串表示形式。

public:
 static System::String ^ ToString(long value);
public static string ToString (long value);
static member ToString : int64 -> string
Public Shared Function ToString (value As Long) As String

参数

value
Int64

要转换的 64 位带符号整数。

返回

value 的字符串表示形式。

示例

以下示例将长整数数组中的每个元素转换为其等效的字符串表示形式。

// Create a NumberFormatInfo object and set several of its
// properties that control default integer formatting.
System.Globalization.NumberFormatInfo provider = new System.Globalization.NumberFormatInfo();
provider.NegativeSign = "minus ";

long[] values = { -200, 0, 1000 };

foreach (long value in values)
   Console.WriteLine("{0,-6}  -->  {1,10}",
                     value, Convert.ToString(value, provider));
// The example displays the following output:
//       -200    -->   minus 200
//       0       -->           0
//       1000    -->        1000
// Create a NumberFormatInfo object and set several of its
// properties that control default integer formatting.
let provider = System.Globalization.NumberFormatInfo()
provider.NegativeSign <- "minus "

let values = [| -200; 0; 1000 |]

for value in values do
    printfn $"{value,-6}  -->  {Convert.ToString(value, provider),10}"
// The example displays the following output:
//       -200    -->   minus 200
//       0       -->           0
//       1000    -->        1000
' Create a NumberFormatInfo object and set several of its
' properties that control default integer formatting.
Dim provider As New System.Globalization.NumberFormatInfo()
provider.NegativeSign = "minus "

Dim values() As Long = { -200, 0, 1000 }

For Each value As Long In values
   Console.WriteLine("{0,-6}  -->  {1,10}", _
                     value, Convert.ToString(value, provider))
Next
' The example displays the following output:
'       -200    -->   minus 200
'       0       -->           0
'       1000    -->        1000

注解

此实现与 完全相同 Int64.ToString()

适用于