Convert.ToUInt32 Метод

Определение

Преобразует заданное значение в 32-битовое целое число без знака.

Перегрузки

ToUInt32(String)

Преобразует заданное строковое представление числа в эквивалентное 32-битовое целое число без знака.

ToUInt32(UInt64)

Преобразует значение заданного 64-разрядного целого числа без знака в эквивалентное 32-разрядное целое число без знака.

ToUInt32(UInt16)

Преобразует значение заданного 16-битового целого числа без знака в эквивалентное 32-битовое целое число без знака.

ToUInt32(UInt32)

Возвращает заданное 32-битовое целое число без знака; фактическое преобразование не производится.

ToUInt32(DateTime)

При вызове этого метода всегда возникает исключение InvalidCastException.

ToUInt32(String, IFormatProvider)

Преобразует заданное строковое представление числа в эквивалентное 32-битовое целое число без знака, учитывая указанные сведения об особенностях форматирования, связанных с языком и региональными параметрами.

ToUInt32(String, Int32)

Преобразует строковое представление числа с указанным основанием системы счисления в эквивалентное ему 32-битовое целое число без знака.

ToUInt32(Single)

Преобразует значение заданного числа с плавающей запятой одиночной точности в эквивалентное 32-битовое целое число без знака.

ToUInt32(Object, IFormatProvider)

Преобразует значение заданного объекта в эквивалентное 32-битовое целое число без знака, используя указанные сведения об особенностях форматирования, связанных с языком и региональными параметрами.

ToUInt32(SByte)

Преобразует значение заданного 8-битового целого числа со знаком в эквивалентное 32-битовое целое число без знака.

ToUInt32(Char)

Преобразует значение заданного символа Юникода в эквивалентное 32-битовое целое число без знака.

ToUInt32(Int64)

Преобразует значение заданного 64-битового целого числа со знаком в эквивалентное 32-битовое целое число без знака.

ToUInt32(Int32)

Преобразует значение заданного 32-битового целого числа со знаком в эквивалентное 32-битовое целое число без знака.

ToUInt32(Int16)

Преобразует значение заданного 16-битового целого числа со знаком в эквивалентное 32-битовое целое число без знака.

ToUInt32(Double)

Преобразует значение заданного числа с плавающей запятой двойной точности в эквивалентное 32-битовое целое число без знака.

ToUInt32(Decimal)

Преобразует значение заданного десятичного числа в эквивалентное 32-битовое целое число без знака.

ToUInt32(Object)

Преобразует значение заданного объекта в 32-битовое целое число без знака.

ToUInt32(Byte)

Преобразует значение заданного 8-битового целого числа без знака в эквивалентное 32-битовое целое число без знака.

ToUInt32(Boolean)

Преобразует заданное логическое значение в эквивалентное 32-битовое целое число без знака.

ToUInt32(String)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует заданное строковое представление числа в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (string value);
[System.CLSCompliant(false)]
public static uint ToUInt32 (string? value);

Параметры

value
String

Строка, содержащая преобразуемое число.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению параметра value, или 0 (нуль), если value имеет значение null.

Атрибуты

Исключения

value не состоит из необязательного знака, за которым следует последовательность цифр (0–9).

value представляет число, которое меньше UInt32.MinValue или больше UInt32.MaxValue.

Примеры

В следующем примере элементы в массиве строк интерпретируются как числовые строки и пытаются преобразовать их в целые числа без знака.

string[] values = { "One", "1.34e28", "-26.87", "-18", "-6.00",
                    " 0", "137", "1601.9", Int32.MaxValue.ToString() };
uint result;

foreach (string value in values)
{
   try {
      result = Convert.ToUInt32(value);
      Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.",
                        value.GetType().Name, value,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value '{1}' is outside the range of the UInt32 type.",
                        value.GetType().Name, value);
   }
   catch (FormatException) {
      Console.WriteLine("The {0} value '{1}' is not in a recognizable format.",
                        value.GetType().Name, value);
   }
}
// The example displays the following output:
//    The String value 'One' is not in a recognizable format.
//    The String value '1.34e28' is not in a recognizable format.
//    The String value '-26.87' is not in a recognizable format.
//    The String value '-18' is outside the range of the UInt32 type.
//    The String value '-6.00' is not in a recognizable format.
//    Converted the String value ' 0' to the UInt32 value 0.
//    Converted the String value '137' to the UInt32 value 137.
//    The String value '1601.9' is not in a recognizable format.
//    Converted the String value '2147483647' to the UInt32 value 2147483647.

Комментарии

ToUInt32(String) Использование метода эквивалентно передаче value в UInt32.Parse(String) метод . value интерпретируется с помощью соглашений о форматировании текущего языка и региональных параметров.

Если вы предпочитаете не обрабатывать исключение в случае сбоя преобразования, вместо этого можно вызвать UInt32.TryParse метод . Он возвращает Boolean значение, указывающее, успешно ли выполнено преобразование.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(UInt64)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 64-разрядного целого числа без знака в эквивалентное 32-разрядное целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (ulong value);

Параметры

value
UInt64

64-разрядное целое число без знака для преобразования.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению value.

Атрибуты

Исключения

value больше UInt32.MaxValue.

Примеры

В следующем примере показано, как преобразовать каждый элемент массива длинных целых чисел без знака в целочисленное значение без знака.

ulong[] numbers = { UInt64.MinValue, 121, 340, UInt64.MaxValue };
uint result;
foreach (ulong number in numbers)
{
   try {
      result = Convert.ToUInt32(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the UInt32 type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//    Converted the UInt64 value 0 to the UInt32 value 0.
//    Converted the UInt64 value 121 to the UInt32 value 121.
//    Converted the UInt64 value 340 to the UInt32 value 340.
//    The UInt64 value 18446744073709551615 is outside the range of the UInt32 type.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(UInt16)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 16-битового целого числа без знака в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (ushort value);

Параметры

value
UInt16

16-разрядное целое число без знака для преобразования.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению value.

Атрибуты

Примеры

В следующем примере каждый элемент в 16-разрядном массиве целых чисел без знака преобразуется в целочисленное значение без знака.

ushort[] numbers = { UInt16.MinValue, 121, 340, UInt16.MaxValue };
uint result;
foreach (ushort number in numbers)
{
   result = Convert.ToUInt32(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 UInt32 value 0.
//    Converted the UInt16 value 121 to the UInt32 value 121.
//    Converted the UInt16 value 340 to the UInt32 value 340.
//    Converted the UInt16 value 65535 to the UInt32 value 65535.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(UInt32)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Возвращает заданное 32-битовое целое число без знака; фактическое преобразование не производится.

[System.CLSCompliant(false)]
public static uint ToUInt32 (uint value);

Параметры

value
UInt32

Возвращаемое 32-разрядное целое число без знака.

Возвращаемое значение

value возвращается без изменений.

Атрибуты

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(DateTime)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

При вызове этого метода всегда возникает исключение InvalidCastException.

[System.CLSCompliant(false)]
public static uint ToUInt32 (DateTime value);

Параметры

value
DateTime

Значение даты и времени для преобразования.

Возвращаемое значение

Это преобразование не поддерживается. Возвращаемое значение отсутствует.

Атрибуты

Исключения

Это преобразование не поддерживается.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

ToUInt32(String, IFormatProvider)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует заданное строковое представление числа в эквивалентное 32-битовое целое число без знака, учитывая указанные сведения об особенностях форматирования, связанных с языком и региональными параметрами.

[System.CLSCompliant(false)]
public static uint ToUInt32 (string value, IFormatProvider provider);
[System.CLSCompliant(false)]
public static uint ToUInt32 (string? value, IFormatProvider? provider);

Параметры

value
String

Строка, содержащая преобразуемое число.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению параметра value, или 0 (нуль), если value имеет значение null.

Атрибуты

Исключения

value не состоит из необязательного знака, за которым следует последовательность цифр (0–9).

value представляет число, которое меньше UInt32.MinValue или больше UInt32.MaxValue.

Примеры

В следующем примере определяется пользовательский NumberFormatInfo объект, который распознает строку "pos" как положительный знак, а строку "neg" — как отрицательный знак. Затем он пытается преобразовать каждый элемент массива числовых строк в целое число, используя как этот поставщик, так и поставщик для инвариантного языка и NumberFormatInfo региональных параметров.

using System;
using System.Globalization;

public class Class1
{
   public static void Main()
   {
      // Create a NumberFormatInfo object and set several of its
      // properties that apply to numbers.
      NumberFormatInfo provider = new NumberFormatInfo();
      provider.PositiveSign = "pos ";
      provider.NegativeSign = "neg ";

      // Define an array of numeric strings.
      string[] values = { "123456789", "+123456789", "pos 123456789",
                          "123456789.", "123,456,789",  "4294967295",
                          "4294967296", "-1", "neg 1" };

      foreach (string value in values)
      {
         Console.Write("{0,-20} -->", value);
         try {
            Console.WriteLine("{0,20}", Convert.ToUInt32(value, provider));
         }
         catch (FormatException) {
            Console.WriteLine("{0,20}", "Bad Format");
         }
         catch (OverflowException) {
            Console.WriteLine("{0,20}", "Numeric Overflow");
         }
      }
   }
}
// The example displays the following output:
//       123456789            -->           123456789
//       +123456789           -->          Bad Format
//       pos 123456789        -->           123456789
//       123456789.           -->          Bad Format
//       123,456,789          -->          Bad Format
//       4294967295           -->          4294967295
//       4294967296           -->    Numeric Overflow
//       -1                   -->          Bad Format
//       neg 1                -->    Numeric Overflow

Комментарии

Возвращаемое значение является результатом вызова UInt32.Parse в value.

provider IFormatProvider— это экземпляр, который получает NumberFormatInfo объект . Объект NumberFormatInfo предоставляет сведения о формате value. Если provider имеет значение null, NumberFormatInfo используется для текущего языка и региональных параметров.

Если вы предпочитаете не обрабатывать исключение в случае сбоя преобразования, вместо этого можно вызвать UInt32.TryParse метод . Он возвращает Boolean значение, указывающее, успешно ли выполнено преобразование.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(String, Int32)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует строковое представление числа с указанным основанием системы счисления в эквивалентное ему 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (string value, int fromBase);
[System.CLSCompliant(false)]
public static uint ToUInt32 (string? value, int fromBase);

Параметры

value
String

Строка, содержащая преобразуемое число.

fromBase
Int32

Основание системы счисления, используемой для представления числа, заданного в параметре value, равное 2, 8, 10 или 16.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению параметра value, или 0 (нуль), если value имеет значение null.

Атрибуты

Исключения

fromBase не равно 2, 8, 10 или 16.

-или-

Значениеvalue, представляющее недесятичное число без знака, использовано со знаком минус.

value имеет значение Empty.

value содержит символ, который не является допустимой цифрой в основании, заданном параметром fromBase. Сообщение об исключении указывает, что отсутствуют цифры для преобразования, если первый символ в value недопустим; в противном случае сообщение указывает, что value содержит недопустимые конечные символы.

Значениеvalue, представляющее недесятичное число без знака, использовано со знаком минус.

-или-

value представляет число, которое меньше UInt32.MinValue или больше UInt32.MaxValue.

Примеры

В следующем примере выполняется попытка интерпретировать каждый элемент в массиве числовых строк как шестнадцатеричное значение и преобразовать его в целое число без знака.

using System;

public class Example
{
   public static void Main()
   {
      string[] hexStrings = { "80000000", "0FFFFFFF", "F0000000", "00A3000", "D",
                              "-13", "9AC61", "GAD", "FFFFFFFFFF" };

      foreach (string hexString in hexStrings)
      {
         Console.Write("{0,-12}  -->  ", hexString);
         try {
            uint number = Convert.ToUInt32(hexString, 16);
            Console.WriteLine("{0,18:N0}", number);
         }
         catch (FormatException) {
            Console.WriteLine("{0,18}", "Bad Format");
         }
         catch (OverflowException)
         {
            Console.WriteLine("{0,18}", "Numeric Overflow");
         }
         catch (ArgumentException) {
            Console.WriteLine("{0,18}", "Invalid in Base 16");
         }
      }
   }
}
// The example displays the following output:
//       80000000      -->       2,147,483,648
//       0FFFFFFF      -->         268,435,455
//       F0000000      -->       4,026,531,840
//       00A3000       -->             667,648
//       D             -->                  13
//       -13           -->  Invalid in Base 16
//       9AC61         -->             633,953
//       GAD           -->          Bad Format
//       FFFFFFFFFF    -->    Numeric Overflow

Комментарии

Если fromBase имеет значение 16, можно задать префикс числа, указанного параметром value , с помощью "0x" или "0X".

UInt32 Так как тип данных поддерживает только неподписанные значения, ToUInt32(String, Int32) метод предполагает, что value выражается с помощью двоичного представления без знака. Другими словами, все 32 бита используются для представления числового значения, а бит знака отсутствует. В результате можно написать код, в котором целочисленное значение со знаком, которое выходит за пределы диапазона UInt32 типа данных, преобразуется UInt32 в значение без метода, вызывающего исключение. В следующем примере выполняется преобразование MinValue в шестнадцатеричное строковое представление, а затем вызывается ToUInt32(String, Int32) метод . Вместо создания исключения метод отображает сообщение "0x80000000 преобразуется в 2147483648".

// Create a hexadecimal value out of range of the UInt32 type.
string value = Convert.ToString(Int32.MinValue, 16);
// Convert it back to a number.
try
{
   UInt32 number = Convert.ToUInt32(value, 16);
   Console.WriteLine("0x{0} converts to {1}.", value, number);
}
catch (OverflowException)
{
   Console.WriteLine("Unable to convert '0x{0}' to an unsigned integer.",
                     value);
}

При выполнении двоичных операций или числовых преобразований разработчик всегда несет ответственность за проверку того, использует ли метод или оператор соответствующее числовое представление для интерпретации определенного значения. В следующем примере показан один из способов обеспечения того, чтобы метод не использовал неправильное двоичное представление для интерпретации значения, использующего представление двух дополнений при преобразовании шестнадцатеричной строки в UInt32 значение. В примере определяется, представляет ли значение целое число со знаком или без знака при преобразовании этого значения в строковое представление. При преобразовании значения UInt32 в значение в примере проверяется, является ли исходное значение целым числом со знаком. Если это так, и если задан его бит высокого порядка (что указывает на то, что исходное значение было отрицательным), метод создает исключение.

// Create a negative hexadecimal value out of range of the UInt32 type.
int sourceNumber = Int32.MinValue;
bool isSigned = Math.Sign((int)sourceNumber.GetType().GetField("MinValue").GetValue(null)) == -1;
string value = Convert.ToString(sourceNumber, 16);
UInt32 targetNumber;
try
{
   targetNumber = Convert.ToUInt32(value, 16);
   if (isSigned && ((targetNumber & 0x80000000) != 0))
      throw new OverflowException();
   else
      Console.WriteLine("0x{0} converts to {1}.", value, targetNumber);
}
catch (OverflowException)
{
   Console.WriteLine("Unable to convert '0x{0}' to an unsigned integer.",
                     value);
}
// Displays the following to the console:
//    Unable to convert '0x80000000' to an unsigned integer.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Single)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного числа с плавающей запятой одиночной точности в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (float value);

Параметры

value
Single

Число с плавающей запятой одиночной точности, которое нужно преобразовать.

Возвращаемое значение

Значение value, округленное до ближайшего 32-разрядного целого числа без знака. Если value имеет среднее значение между двумя целыми числами, будет возвращено четное число; так, значение 4,5 преобразуется в 4, а 5,5 — в 6.

Атрибуты

Исключения

value значение меньше нуля или больше UInt32.MaxValue.

Примеры

В следующем примере предпринимается попытка преобразовать каждый элемент в массиве значений Single в целое число без знака.

float[] values= { Single.MinValue, -1.38e10f, -1023.299f, -12.98f,
                  0f, 9.113e-16f, 103.919f, 17834.191f, Single.MaxValue };
uint result;

foreach (float value in values)
{
   try {
      result = Convert.ToUInt32(value);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        value.GetType().Name, value,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the UInt32 type.",
                        value.GetType().Name, value);
   }
}
// The example displays the following output:
//    The Single value -3.402823E+38 is outside the range of the UInt32 type.
//    The Single value -1.38E+10 is outside the range of the UInt32 type.
//    The Single value -1023.299 is outside the range of the UInt32 type.
//    The Single value -12.98 is outside the range of the UInt32 type.
//    Converted the Single value 0 to the UInt32 value 0.
//    Converted the Single value 9.113E-16 to the UInt32 value 0.
//    Converted the Single value 103.919 to the UInt32 value 104.
//    Converted the Single value 17834.19 to the UInt32 value 17834.
//    The Single value 3.402823E+38 is outside the range of the UInt32 type.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Object, IFormatProvider)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного объекта в эквивалентное 32-битовое целое число без знака, используя указанные сведения об особенностях форматирования, связанных с языком и региональными параметрами.

[System.CLSCompliant(false)]
public static uint ToUInt32 (object value, IFormatProvider provider);
[System.CLSCompliant(false)]
public static uint ToUInt32 (object? value, IFormatProvider? provider);

Параметры

value
Object

Объект, реализующий интерфейс IConvertible.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.

Возвращаемое значение

32-разрядное целое число без знака, эквивалентное значению value, или нуль, если value имеет значение null.

Атрибуты

Исключения

Параметр value имеет неправильный формат.

value не реализует интерфейс IConvertible.

-или-

Преобразование не поддерживается.

value представляет число, которое меньше UInt32.MinValue или больше UInt32.MaxValue.

Примеры

В следующем примере определяется HexString класс, реализующий IConvertible интерфейс и предназначенный для хранения строкового представления как 32-разрядных, так и 32-разрядных значений без знака. Класс содержит Sign свойство , указывающее знак его шестнадцатеричного значения.

using System;
using System.Globalization;
using System.Text.RegularExpressions;

public enum SignBit { Negative=-1, Zero=0, Positive=1 };

public struct HexString : IConvertible
{
   private SignBit signBit;
   private string hexString;

   public SignBit Sign
   {
      set { signBit = value; }
      get { return signBit; }
   }

   public string Value
   {
      set {
         if (value.Trim().Length > 8)
            throw new ArgumentException("The string representation of a 32-bit integer cannot have more than 8 characters.");
         else if (! Regex.IsMatch(value, "([0-9,A-F]){1,8}", RegexOptions.IgnoreCase))
            throw new ArgumentException("The hexadecimal representation of a 32-bit integer contains invalid characters.");
         else
            hexString = value;
      }
      get { return hexString; }
   }

   // IConvertible implementations.
   public TypeCode GetTypeCode()
   {
      return TypeCode.Object;
   }

   public bool ToBoolean(IFormatProvider provider)
   {
      return signBit != SignBit.Zero;
   }

   public byte ToByte(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         throw new OverflowException(String.Format("{0} is out of range of the Byte type.", Convert.ToInt32(hexString, 16)));
      else
         try {
            return Byte.Parse(hexString, NumberStyles.HexNumber);
         }
         catch (OverflowException e) {
            throw new OverflowException(String.Format("{0} is out of range of the Byte type.", Convert.ToUInt32(hexString, 16)), e);
         }
   }

   public char ToChar(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         throw new OverflowException(String.Format("{0} is out of range of the Char type.", Convert.ToInt32(hexString, 16)));

      try {
         ushort codePoint = UInt16.Parse(this.hexString, NumberStyles.HexNumber);
         return Convert.ToChar(codePoint);
      }
      catch (OverflowException e) {
         throw new OverflowException(String.Format("{0} is out of range of the Char type.", Convert.ToUInt32(hexString, 16)), e);
      }
   }

   public DateTime ToDateTime(IFormatProvider provider)
   {
      throw new InvalidCastException("Hexadecimal to DateTime conversion is not supported.");
   }

   public decimal ToDecimal(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
      {
         int hexValue = Int32.Parse(hexString, NumberStyles.HexNumber);
         return Convert.ToDecimal(hexValue);
      }
      else
      {
         uint hexValue = UInt32.Parse(hexString, NumberStyles.HexNumber);
         return Convert.ToDecimal(hexValue);
      }
   }

   public double ToDouble(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         return Convert.ToDouble(Int32.Parse(hexString, NumberStyles.HexNumber));
      else
         return Convert.ToDouble(UInt32.Parse(hexString, NumberStyles.HexNumber));
   }

   public short ToInt16(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         try {
            return Convert.ToInt16(Int32.Parse(hexString, NumberStyles.HexNumber));
         }
         catch (OverflowException e) {
            throw new OverflowException(String.Format("{0} is out of range of the Int16 type.", Convert.ToInt32(hexString, 16)), e);
         }
      else
         try {
            return Convert.ToInt16(UInt32.Parse(hexString, NumberStyles.HexNumber));
         }
         catch (OverflowException e) {
            throw new OverflowException(String.Format("{0} is out of range of the Int16 type.", Convert.ToUInt32(hexString, 16)), e);
         }
   }

   public int ToInt32(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         return Int32.Parse(hexString, NumberStyles.HexNumber);
      else
         try {
            return Convert.ToInt32(UInt32.Parse(hexString, NumberStyles.HexNumber));
         }
         catch (OverflowException e) {
            throw new OverflowException(String.Format("{0} is out of range of the Int32 type.", Convert.ToUInt32(hexString, 16)), e);
         }
   }

   public long ToInt64(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         return Convert.ToInt64(Int32.Parse(hexString, NumberStyles.HexNumber));
      else
         return Int64.Parse(hexString, NumberStyles.HexNumber);
   }

   public sbyte ToSByte(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         try {
            return Convert.ToSByte(Int32.Parse(hexString, NumberStyles.HexNumber));
         }
         catch (OverflowException e) {
            throw new OverflowException(String.Format("{0} is outside the range of the SByte type.",
                                                      Int32.Parse(hexString, NumberStyles.HexNumber), e));
         }
      else
         try {
            return Convert.ToSByte(UInt32.Parse(hexString, NumberStyles.HexNumber));
         }
         catch (OverflowException e) {
            throw new OverflowException(String.Format("{0} is outside the range of the SByte type.",
                                                    UInt32.Parse(hexString, NumberStyles.HexNumber)), e);
         }
   }

   public float ToSingle(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         return Convert.ToSingle(Int32.Parse(hexString, NumberStyles.HexNumber));
      else
         return Convert.ToSingle(UInt32.Parse(hexString, NumberStyles.HexNumber));
   }

   public string ToString(IFormatProvider provider)
   {
      return "0x" + this.hexString;
   }

   public object ToType(Type conversionType, IFormatProvider provider)
   {
      switch (Type.GetTypeCode(conversionType))
      {
         case TypeCode.Boolean:
            return this.ToBoolean(null);
         case TypeCode.Byte:
            return this.ToByte(null);
         case TypeCode.Char:
            return this.ToChar(null);
         case TypeCode.DateTime:
            return this.ToDateTime(null);
         case TypeCode.Decimal:
            return this.ToDecimal(null);
         case TypeCode.Double:
            return this.ToDouble(null);
         case TypeCode.Int16:
            return this.ToInt16(null);
         case TypeCode.Int32:
            return this.ToInt32(null);
         case TypeCode.Int64:
            return this.ToInt64(null);
         case TypeCode.Object:
            if (typeof(HexString).Equals(conversionType))
               return this;
            else
               throw new InvalidCastException(String.Format("Conversion to a {0} is not supported.", conversionType.Name));
         case TypeCode.SByte:
            return this.ToSByte(null);
         case TypeCode.Single:
            return this.ToSingle(null);
         case TypeCode.String:
            return this.ToString(null);
         case TypeCode.UInt16:
            return this.ToUInt16(null);
         case TypeCode.UInt32:
            return this.ToUInt32(null);
         case TypeCode.UInt64:
            return this.ToUInt64(null);
         default:
            throw new InvalidCastException(String.Format("Conversion to {0} is not supported.", conversionType.Name));
      }
   }

   public ushort ToUInt16(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         throw new OverflowException(String.Format("{0} is outside the range of the UInt16 type.",
                                                   Int32.Parse(hexString, NumberStyles.HexNumber)));
      else
         try {
            return Convert.ToUInt16(UInt32.Parse(hexString, NumberStyles.HexNumber));
         }
         catch (OverflowException e) {
            throw new OverflowException(String.Format("{0} is out of range of the UInt16 type.", Convert.ToUInt32(hexString, 16)), e);
         }
   }

   public uint ToUInt32(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         throw new OverflowException(String.Format("{0} is outside the range of the UInt32 type.",
                                                   Int32.Parse(hexString, NumberStyles.HexNumber)));
      else
         return Convert.ToUInt32(hexString, 16);
   }

   public ulong ToUInt64(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         throw new OverflowException(String.Format("{0} is outside the range of the UInt64 type.",
                                                   Int32.Parse(hexString, NumberStyles.HexNumber)));
      else
         return Convert.ToUInt64(hexString, 16);
   }
}

В следующем примере показано, что вызов ToUInt32(Object, IFormatProvider) метода , который передает HexString объект в качестве параметра, в свою очередь вызывает IConvertible.ToUInt32 реализацию HexString класса .

public class Example
{
   public static void Main()
   {
      uint positiveValue = 320000000;
      int negativeValue = -1;

      HexString positiveString = new HexString();
      positiveString.Sign = (SignBit) Math.Sign(positiveValue);
      positiveString.Value = positiveValue.ToString("X4");

      HexString negativeString = new HexString();
      negativeString.Sign = (SignBit) Math.Sign(negativeValue);
      negativeString.Value = negativeValue.ToString("X4");

      try {
         Console.WriteLine("0x{0} converts to {1}.", positiveString.Value, Convert.ToUInt32(positiveString));
      }
      catch (OverflowException) {
         Console.WriteLine("{0} is outside the range of the UInt32 type.",
                           Int32.Parse(positiveString.Value, NumberStyles.HexNumber));
      }

      try {
         Console.WriteLine("0x{0} converts to {1}.", negativeString.Value, Convert.ToUInt32(negativeString));
      }
      catch (OverflowException) {
         Console.WriteLine("{0} is outside the range of the UInt32 type.",
                           Int32.Parse(negativeString.Value, NumberStyles.HexNumber));
      }
   }
}
// The example dosplays the following output:
//       0x1312D000 converts to 320000000.
//       -1 is outside the range of the UInt32 type.

Комментарии

Возвращаемое значение является результатом вызова IConvertible.ToUInt32 метода базового типа value.

provider позволяет пользователю указать сведения о преобразовании для конкретного языка и региональных параметров для содержимого value. Например, если value является String , который представляет число, может предоставить сведения о нотации, используемой для представления этого числа, provider с учетом языка и региональных параметров.

Базовые типы игнорируют provider; однако параметр можно использовать, если value является определяемым пользователем типом, реализующим IConvertible интерфейс .

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(SByte)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 8-битового целого числа со знаком в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (sbyte value);

Параметры

value
SByte

8-разрядное целое число со знаком для преобразования.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению value.

Атрибуты

Исключения

Значение параметра value меньше нуля.

Примеры

В следующем примере предпринимается попытка преобразовать каждый элемент массива байтов со знаком в целое число без знака.

sbyte[] numbers = { SByte.MinValue, -1, 0, 10, SByte.MaxValue };
uint result;

foreach (sbyte number in numbers)
{
   try {
      result = Convert.ToUInt32(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the UInt32 type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//    The SByte value -128 is outside the range of the UInt32 type.
//    The SByte value -1 is outside the range of the UInt32 type.
//    Converted the SByte value 0 to the UInt32 value 0.
//    Converted the SByte value 10 to the UInt32 value 10.
//    Converted the SByte value 127 to the UInt32 value 127.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Char)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного символа Юникода в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (char value);

Параметры

value
Char

Знак Юникода, который необходимо преобразовать.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению value.

Атрибуты

Примеры

В следующем примере каждый элемент в массиве символов преобразуется в целое число без знака.

char[] chars = { 'a', 'z', '\u0007', '\u03FF',
                 '\u7FFF', '\uFFFE' };
uint result;

foreach (char ch in chars)
{
   result = Convert.ToUInt32(ch);
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.",
                     ch.GetType().Name, ch,
                     result.GetType().Name, result);
}
// The example displays the following output:
//    Converted the Char value 'a' to the UInt32 value 97.
//    Converted the Char value 'z' to the UInt32 value 122.
//    Converted the Char value '' to the UInt32 value 7.
//    Converted the Char value 'Ͽ' to the UInt32 value 1023.
//    Converted the Char value '翿' to the UInt32 value 32767.
//    Converted the Char value '' to the UInt32 value 65534.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Int64)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 64-битового целого числа со знаком в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (long value);

Параметры

value
Int64

64-разрядное целое число со знаком для преобразования.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению value.

Атрибуты

Исключения

value значение меньше нуля или больше UInt32.MaxValue.

Примеры

В следующем примере предпринимается попытка преобразовать каждый элемент в массиве длинных целых чисел в целое число без знака.

long[] numbers = { Int64.MinValue, -1, 0, 121, 340, Int64.MaxValue };
uint result;
foreach (long number in numbers)
{
   try {
      result = Convert.ToUInt32(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the UInt32 type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//    The Int64 value -9223372036854775808 is outside the range of the UInt32 type.
//    The Int64 value -1 is outside the range of the UInt32 type.
//    Converted the Int64 value 0 to the UInt32 value 0.
//    Converted the Int64 value 121 to the UInt32 value 121.
//    Converted the Int64 value 340 to the UInt32 value 340.
//    The Int64 value 9223372036854775807 is outside the range of the UInt32 type.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Int32)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 32-битового целого числа со знаком в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (int value);

Параметры

value
Int32

32-разрядное целое число со знаком для преобразования.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению value.

Атрибуты

Исключения

Значение параметра value меньше нуля.

Примеры

В следующем примере предпринимается попытка преобразовать каждый элемент в массиве целых чисел без знака.

int[] numbers = { Int32.MinValue, -1203, 0, 121, 1340, Int32.MaxValue };
uint result;
foreach (int number in numbers)
{
   try {
      result = Convert.ToUInt32(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the UInt32 type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//    The Int32 value -2147483648 is outside the range of the UInt32 type.
//    The Int32 value -1203 is outside the range of the UInt32 type.
//    Converted the Int32 value 0 to the UInt32 value 0.
//    Converted the Int32 value 121 to the UInt32 value 121.
//    Converted the Int32 value 1340 to the UInt32 value 1340.
//    Converted the Int32 value 2147483647 to the UInt32 value 2147483647.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Int16)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 16-битового целого числа со знаком в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (short value);

Параметры

value
Int16

16-разрядное целое число со знаком для преобразования.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению value.

Атрибуты

Исключения

Значение параметра value меньше нуля.

Примеры

В следующем примере предпринимается попытка преобразовать каждый элемент в массиве 16-разрядных целых чисел в целое число без знака.

short[] numbers= { Int16.MinValue, -1, 0, 121, 340, Int16.MaxValue };
uint result;

foreach (short number in numbers)
{
   try {
      result = Convert.ToUInt32(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                           number.GetType().Name, number,
                           result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the UInt32 type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//    The Int16 value -32768 is outside the range of the UInt32 type.
//    The Int16 value -1 is outside the range of the UInt32 type.
//    Converted the Int16 value 0 to the UInt32 value 0.
//    Converted the Int16 value 121 to the UInt32 value 121.
//    Converted the Int16 value 340 to the UInt32 value 340.
//    Converted the Int16 value 32767 to the UInt32 value 32767.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Double)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного числа с плавающей запятой двойной точности в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (double value);

Параметры

value
Double

Число с плавающей запятой двойной точности, которое нужно преобразовать.

Возвращаемое значение

Значение value, округленное до ближайшего 32-разрядного целого числа без знака. Если value имеет среднее значение между двумя целыми числами, будет возвращено четное число; так, значение 4,5 преобразуется в 4, а 5,5 — в 6.

Атрибуты

Исключения

value значение меньше нуля или больше UInt32.MaxValue.

Примеры

В следующем примере предпринимается попытка преобразовать каждый элемент в массиве значений Double в целое число без знака.

double[] values= { Double.MinValue, -1.38e10, -1023.299, -12.98,
                   0, 9.113e-16, 103.919, 17834.191, Double.MaxValue };
uint result;

foreach (double value in values)
{
   try {
      result = Convert.ToUInt32(value);
      Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.",
                        value.GetType().Name, value,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the UInt32 type.",
                        value.GetType().Name, value);
   }
}
// The example displays the following output:
//    The Double value -1.79769313486232E+308 is outside the range of the UInt32 type.
//    The Double value -13800000000 is outside the range of the UInt32 type.
//    The Double value -1023.299 is outside the range of the UInt32 type.
//    The Double value -12.98 is outside the range of the UInt32 type.
//    Converted the Double value '0' to the UInt32 value 0.
//    Converted the Double value '9.113E-16' to the UInt32 value 0.
//    Converted the Double value '103.919' to the UInt32 value 104.
//    Converted the Double value '17834.191' to the UInt32 value 17834.
//    The Double value 1.79769313486232E+308 is outside the range of the UInt32 type.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Decimal)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного десятичного числа в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (decimal value);

Параметры

value
Decimal

Десятичное число для преобразования.

Возвращаемое значение

Значение value, округленное до ближайшего 32-разрядного целого числа без знака. Если value имеет среднее значение между двумя целыми числами, будет возвращено четное число; так, значение 4,5 преобразуется в 4, а 5,5 — в 6.

Атрибуты

Исключения

value значение меньше нуля или больше UInt32.MaxValue.

Примеры

В следующем примере предпринимается попытка преобразовать каждый элемент в массиве значений Decimal в целое число без знака.

decimal[] values= { Decimal.MinValue, -1034.23m, -12m, 0m, 147m,
                    199.55m, 9214.16m, Decimal.MaxValue };
uint result;

foreach (decimal value in values)
{
   try {
      result = Convert.ToUInt32(value);
      Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.",
                        value.GetType().Name, value,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the UInt32 type.",
                        value.GetType().Name, value);
   }
}
// The example displays the following output:
//    The Decimal value -79228162514264337593543950335 is outside the range of the UInt32 type.
//    The Decimal value -1034.23 is outside the range of the UInt32 type.
//    The Decimal value -12 is outside the range of the UInt32 type.
//    Converted the Decimal value '0' to the UInt32 value 0.
//    Converted the Decimal value '147' to the UInt32 value 147.
//    Converted the Decimal value '199.55' to the UInt32 value 200.
//    Converted the Decimal value '9214.16' to the UInt32 value 9214.
//    The Decimal value 79228162514264337593543950335 is outside the range of the UInt32 type.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Object)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного объекта в 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (object value);
[System.CLSCompliant(false)]
public static uint ToUInt32 (object? value);

Параметры

value
Object

Объект, реализующий интерфейс IConvertible, или значение null.

Возвращаемое значение

32-разрядное целое число без знака, эквивалентное значению value, или нуль (0), если value имеет значение null.

Атрибуты

Исключения

Параметр value имеет неправильный формат.

value не реализует интерфейс IConvertible.

-или-

Преобразование не поддерживается.

value представляет число, которое меньше UInt32.MinValue или больше UInt32.MaxValue.

Примеры

В следующем примере предпринимается попытка преобразовать каждый элемент в массиве объектов в целое число без знака.

object[] values = { true, -12, 163, 935, 'x', new DateTime(2009, 5, 12),
                    "104", "103.0", "-1",
                    "1.00e2", "One", 1.00e2, 16.3e42};
uint result;

foreach (object value in values)
{
   try {
      result = Convert.ToUInt32(value);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        value.GetType().Name, value,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value '{1}' is outside the range of the UInt32 type.",
                        value.GetType().Name, value);
   }
   catch (FormatException) {
      Console.WriteLine("The {0} value {1} is not in a recognizable format.",
                        value.GetType().Name, value);
   }
   catch (InvalidCastException) {
      Console.WriteLine("No conversion to a UInt32 exists for the {0} value '{1}'.",
                        value.GetType().Name, value);
   }
}
// The example displays the following output:
//    Converted the Boolean value True to the UInt32 value 1.
//    The Int32 value '-12' is outside the range of the UInt32 type.
//    Converted the Int32 value 163 to the UInt32 value 163.
//    Converted the Int32 value 935 to the UInt32 value 935.
//    Converted the Char value x to the UInt32 value 120.
//    No conversion to a UInt32 exists for the DateTime value '5/12/2009 12:00:00 AM'.
//    Converted the String value 104 to the UInt32 value 104.
//    The String value 103.0 is not in a recognizable format.
//    The String value '-1' is outside the range of the UInt32 type.
//    The String value 1.00e2 is not in a recognizable format.
//    The String value One is not in a recognizable format.
//    Converted the Double value 100 to the UInt32 value 100.
//    The Double value '1.63E+43' is outside the range of the UInt32 type.

Комментарии

Возвращаемое значение является результатом вызова IConvertible.ToUInt32 метода базового типа value.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Byte)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 8-битового целого числа без знака в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (byte value);

Параметры

value
Byte

8-разрядное целое число без знака для преобразования.

Возвращаемое значение

32-разрядное целое число без знака, которое эквивалентно значению value.

Атрибуты

Примеры

В следующем примере каждый элемент в массиве байтов преобразуется в целое число без знака.

byte[] bytes = { Byte.MinValue, 14, 122, Byte.MaxValue};
uint result;

foreach (byte byteValue in bytes)
{
   result = Convert.ToUInt32(byteValue);
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                     byteValue.GetType().Name, byteValue,
                     result.GetType().Name, result);
}
// The example displays the following output:
//    Converted the Byte value 0 to the UInt32 value 0.
//    Converted the Byte value 14 to the UInt32 value 14.
//    Converted the Byte value 122 to the UInt32 value 122.
//    Converted the Byte value 255 to the UInt32 value 255.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToUInt32(Boolean)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует заданное логическое значение в эквивалентное 32-битовое целое число без знака.

[System.CLSCompliant(false)]
public static uint ToUInt32 (bool value);

Параметры

value
Boolean

Логическое значение, которое необходимо преобразовать.

Возвращаемое значение

Число 1, если value имеет значение true; в противном случае — 0.

Атрибуты

Примеры

В следующем примере логические значения true и false преобразуются в целые числа без знака.

bool falseFlag = false;
bool trueFlag = true;

Console.WriteLine("{0} converts to {1}.", falseFlag,
                  Convert.ToUInt32(falseFlag));
Console.WriteLine("{0} converts to {1}.", trueFlag,
                  Convert.ToUInt32(trueFlag));
// The example displays the following output:
//       False converts to 0.
//       True converts to 1.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0