# DecimalDecimalDecimalDecimal Struct

## Определение

Представляет десятичное число с плавающей запятой.Represents a decimal floating-point number.

``public value class Decimal : IComparable, IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, IFormattable, System::Runtime::Serialization::IDeserializationCallback``
``````[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable, System.Runtime.Serialization.IDeserializationCallback``````
``````type decimal = struct
interface IFormattable
interface IConvertible
interface IDeserializationCallback``````
``````Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IConvertible, IDeserializationCallback, IEquatable(Of Decimal), IFormattable``````
Наследование
DecimalDecimalDecimalDecimal
Атрибуты
Реализации

## Примеры

В следующем коде показано использование функции Decimal.The following code example demonstrates the use of Decimal.

``````   /// <summary>
/// Keeping my fortune in Decimals to avoid the round-off errors.
/// </summary>
public ref class PiggyBank
{
protected:
Decimal MyFortune;

public:
{
MyFortune = System::Decimal::Add( MyFortune, Decimal(.01) );
}

System::Decimal Capacity()
{
return MyFortune.MaxValue;
}

Decimal Dollars()
{
return Decimal::Floor( MyFortune );
}

Decimal Cents()
{
return Decimal::Subtract( MyFortune, Decimal::Floor( MyFortune ) );
}

virtual System::String^ ToString() override
{
return MyFortune.ToString("C")+" in piggy bank";
}
};
}
``````
``````/// <summary>
/// Keeping my fortune in Decimals to avoid the round-off errors.
/// </summary>
class PiggyBank {
protected decimal MyFortune;

}

public decimal Capacity {
get {
return Decimal.MaxValue;
}
}

public decimal Dollars {
get {
return Decimal.Floor(MyFortune);
}
}

public decimal Cents {
get {
return Decimal.Subtract(MyFortune, Decimal.Floor(MyFortune));
}
}

public override string ToString() {
return MyFortune.ToString("C")+" in piggy bank";
}
}
``````
``````' Keeping my fortune in Decimals to avoid the round-off errors.
Class PiggyBank
Protected MyFortune As Decimal

End Sub

Public ReadOnly Property Capacity() As Decimal
Get
Return [Decimal].MaxValue
End Get
End Property

Public ReadOnly Property Dollars() As Decimal
Get
Return [Decimal].Floor(MyFortune)
End Get
End Property

Public ReadOnly Property Cents() As Decimal
Get
Return [Decimal].Subtract(MyFortune, [Decimal].Floor(MyFortune))
End Get
End Property

Public Overrides Function ToString() As String
Return MyFortune.ToString("C") + " in piggy bank"
End Function
End Class
``````

## Комментарии

Тип Decimal значения представляет десятичные числа в диапазоне от плюс 79,228,162,514,264,337,593,543,950,335 до минус 79,228,162,514,264,337,593,543,950,335.The Decimal value type represents decimal numbers ranging from positive 79,228,162,514,264,337,593,543,950,335 to negative 79,228,162,514,264,337,593,543,950,335. Значение по умолчанию `Decimal` равно 0.The default value of a `Decimal` is 0. Тип Decimal значения подходит для финансовых вычислений, требующих большого числа значащих цифр целой и дробной части и отсутствия ошибок округления.The Decimal value type is appropriate for financial calculations that require large numbers of significant integral and fractional digits and no round-off errors. Decimal Тип не устраняет необходимость округления.The Decimal type does not eliminate the need for rounding. Но он сводит к минимуму ошибки, возникающие из-за округления.Rather, it minimizes errors due to rounding. Например, следующий код создает результат 0.9999999999999999999999999999 вместо 1.For example, the following code produces a result of 0.9999999999999999999999999999 instead of 1.

``````using namespace System;

void main()
{
Decimal dividend = Decimal::One;
Decimal divisor = 3;
// The following displays 0.9999999999999999999999999999 to the console
Console::WriteLine(dividend/divisor * divisor);
}
``````
``````decimal dividend = Decimal.One;
decimal divisor = 3;
// The following displays 0.9999999999999999999999999999 to the console
Console.WriteLine(dividend/divisor * divisor);
``````
``````Dim dividend As Decimal = Decimal.One
Dim divisor As Decimal = 3
' The following displays 0.9999999999999999999999999999 to the console
Console.WriteLine(dividend/divisor * divisor)
``````

Когда результат деления и умножения передается Round в метод, результат не теряет точности, как показано в следующем коде.When the result of the division and multiplication is passed to the Round method, the result suffers no loss of precision, as the following code shows.

``````using namespace System;

void main()
{
Decimal dividend = Decimal::One;
Decimal divisor = 3;
// The following displays 1.00 to the console
Console::WriteLine(Math::Round(dividend/divisor * divisor, 2));
}
``````
``````decimal dividend = Decimal.One;
decimal divisor = 3;
// The following displays 1.00 to the console
Console.WriteLine(Math.Round(dividend/divisor * divisor, 2));
``````
``````Dim dividend As Decimal = Decimal.One
Dim divisor As Decimal = 3
' The following displays 1.00 to the console
Console.WriteLine(Math.Round(dividend/divisor * divisor, 2))
``````

Десятичное число — это значение с плавающей запятой, состоящее из знака, числового значения, где каждая цифра в диапазоне от 0 до 9, и коэффициент масштабирования, указывающий позицию плавающей десятичной запятой, разделяющую целую и дробную части элемента числовое значение.A decimal number is a floating-point value that consists of a sign, a numeric value where each digit in the value ranges from 0 to 9, and a scaling factor that indicates the position of a floating decimal point that separates the integral and fractional parts of the numeric value.

Двоичное представление Decimal значения состоит из 1-разрядного знака, 96-разрядного целого числа и коэффициента масштабирования, используемого для деления 96-разрядного целого числа и указания того, какая часть является десятичной дробью.The binary representation of a Decimal value consists of a 1-bit sign, a 96-bit integer number, and a scaling factor used to divide the 96-bit integer and specify what portion of it is a decimal fraction. Коэффициент масштабирования неявно является числом 10, возведенным в степень в диапазоне от 0 до 28.The scaling factor is implicitly the number 10, raised to an exponent ranging from 0 to 28. Decimal Таким образом, двоичное представление значения в форме ((от-296 до 296)/10 (от0 до 28)), где-( MinValue296-1) равно, а 296-1 равно MaxValue.Therefore, the binary representation of a Decimal value the form, ((-296 to 296) / 10(0 to 28)), where -(296-1) is equal to MinValue, and 296-1 is equal to MaxValue. Дополнительные сведения о двоичном представлении Decimal значений и пример см. в Decimal(Int32[]) разделе Конструктор и GetBits метод.For more information about the binary representation of Decimal values and an example, see the Decimal(Int32[]) constructor and the GetBits method.

Коэффициент масштабирования также сохраняет конечные нули в Decimal числе.The scaling factor also preserves any trailing zeros in a Decimal number. Замыкающие нули не влияют на значение Decimal числа в арифметической операции или операциях сравнения.Trailing zeros do not affect the value of a Decimal number in arithmetic or comparison operations. Однако замыкающие нули могут быть отображены ToString методом, если применяется соответствующая строка формата.However, trailing zeros might be revealed by the ToString method if an appropriate format string is applied.

### Рекомендации по преобразованиюConversion Considerations

Этот тип предоставляет методы, которые Decimal преобразуют значения в значения SByte Byte Int16 Int32 Int64 UInt64 ,, ,UInt32,,,, и из значений,,,,,, и. UInt16This type provides methods that convert Decimal values to and from SByte, Int16, Int32, Int64, Byte, UInt16, UInt32, and UInt64 values. Преобразования из этих целочисленных типов Decimal в расширяют преобразования, которые никогда не теряют информацию или создают исключения.Conversions from these integral types to Decimal are widening conversions that never lose information or throw exceptions.

Преобразования из Decimal в любой из целочисленных типов являются сужающими преобразованиями, Decimal которые округляют значение до ближайшего целого числа в сторону нуля.Conversions from Decimal to any of the integral types are narrowing conversions that round the Decimal value to the nearest integer value toward zero. Некоторые языки, такие как C#, также поддерживают преобразование Decimal значений в Char значения.Some languages, such as C#, also support the conversion of Decimal values to Char values. Если результат этих преобразований не может быть представлен в целевом типе, OverflowException возникает исключение.If the result of these conversions cannot be represented in the destination type, an OverflowException exception is thrown.

Тип также предоставляет методы, которые преобразуют Decimal значения в значения и Single из значений и Double. DecimalThe Decimal type also provides methods that convert Decimal values to and from Single and Double values. Преобразования из Decimal в Single или Double являются сужающими преобразованиями, которые могут потерять точность, но не сведения о величине преобразованного значения.Conversions from Decimal to Single or Double are narrowing conversions that might lose precision but not information about the magnitude of the converted value. Преобразование не создает исключение.The conversion does not throw an exception.

Преобразования из Single или Double для Decimal выдачи OverflowException исключения ,Decimalесли результат преобразования не может быть представлен как.Conversions from Single or Double to Decimal throw an OverflowException exception if the result of the conversion cannot be represented as a Decimal.

### Выполнение операций с десятичными значениямиPerforming Operations on Decimal Values

Decimal Тип поддерживает стандартные математические операции, такие как сложение, вычитание, деление, умножение и унарное отрицание.The Decimal type supports standard mathematical operations such as addition, subtraction, division, multiplication, and unary negation. Вы также можете напрямую работать с двоичным представлением Decimal значения, GetBits вызвав метод.You can also work directly with the binary representation of a Decimal value by calling the GetBits method.

Для сравнения двух Decimal значений можно использовать стандартные операторы числового сравнения или CompareTo вызвать метод или Equals .To compare two Decimal values, you can use the standard numeric comparison operators, or you can call the CompareTo or Equals method.

Также можно вызывать члены Math класса для выполнения широкого спектра числовых операций, включая получение абсолютного значения числа, определение максимального или минимального значения двух Decimal значений, получение знака числа и округление число.You can also call the members of the Math class to perform a wide range of numeric operations, including getting the absolute value of a number, determining the maximum or minimum value of two Decimal values, getting the sign of a number, and rounding a number.

## Конструкторы

 Decimal(Double) Decimal(Double) Decimal(Double) Decimal(Double) Инициализирует новый экземпляр Decimal, используя значение заданного числа двойной точности с плавающей запятой.Initializes a new instance of Decimal to the value of the specified double-precision floating-point number. Decimal(Int32) Decimal(Int32) Decimal(Int32) Decimal(Int32) Инициализирует новый экземпляр Decimal, используя значение указанного 32-разрядного целого числа со знаком.Initializes a new instance of Decimal to the value of the specified 32-bit signed integer. Decimal(Int32[]) Decimal(Int32[]) Decimal(Int32[]) Decimal(Int32[]) Инициализирует новый экземпляр Decimal с представленным в двоичном виде десятичным значением, содержащимся в указанном массиве.Initializes a new instance of Decimal to a decimal value represented in binary and contained in a specified array. Decimal(Int64) Decimal(Int64) Decimal(Int64) Decimal(Int64) Инициализирует новый экземпляр Decimal, используя значение указанного 64-разрядного целого числа со знаком.Initializes a new instance of Decimal to the value of the specified 64-bit signed integer. Decimal(Single) Decimal(Single) Decimal(Single) Decimal(Single) Инициализирует новый экземпляр Decimal, используя значение заданного числа одиночной точности с плавающей запятой.Initializes a new instance of Decimal to the value of the specified single-precision floating-point number. Decimal(UInt32) Decimal(UInt32) Decimal(UInt32) Decimal(UInt32) Инициализирует новый экземпляр Decimal, используя значение указанного 32-разрядного целого числа без знака.Initializes a new instance of Decimal to the value of the specified 32-bit unsigned integer. Decimal(UInt64) Decimal(UInt64) Decimal(UInt64) Decimal(UInt64) Инициализирует новый экземпляр Decimal, используя значение указанного 64-разрядного целого числа без знака.Initializes a new instance of Decimal to the value of the specified 64-bit unsigned integer. Decimal(Int32, Int32, Int32, Boolean, Byte) Decimal(Int32, Int32, Int32, Boolean, Byte) Decimal(Int32, Int32, Int32, Boolean, Byte) Decimal(Int32, Int32, Int32, Boolean, Byte) Инициализирует новый экземпляр Decimal на основе параметров, задающих составные части экземпляра.Initializes a new instance of Decimal from parameters specifying the instance's constituent parts.

## Поля

 MaxValue MaxValue MaxValue MaxValue Представляет наибольшее возможное значение типа Decimal.Represents the largest possible value of Decimal. В этом поле содержится константа, и оно доступно только для чтения.This field is constant and read-only. MinusOne MinusOne MinusOne MinusOne Представляет число минус один (-1).Represents the number negative one (-1). MinValue MinValue MinValue MinValue Представляет минимально допустимое значение типа Decimal.Represents the smallest possible value of Decimal. В этом поле содержится константа, и оно доступно только для чтения.This field is constant and read-only. One One One One Представляет число один (1).Represents the number one (1). Zero Zero Zero Zero Представляет число нуль (0).Represents the number zero (0).

## Операторы

 Addition(Decimal, Decimal) Addition(Decimal, Decimal) Addition(Decimal, Decimal) Addition(Decimal, Decimal) Суммирует два заданных значения типа Decimal.Adds two specified Decimal values. Decrement(Decimal) Decrement(Decimal) Decrement(Decimal) Decrement(Decimal) Уменьшает операнд типа Decimal на единицу.Decrements the Decimal operand by one. Division(Decimal, Decimal) Division(Decimal, Decimal) Division(Decimal, Decimal) Division(Decimal, Decimal) Выполняет деление двух заданных значений типа Decimal.Divides two specified Decimal values. Equality(Decimal, Decimal) Equality(Decimal, Decimal) Equality(Decimal, Decimal) Equality(Decimal, Decimal) Возвращает значение, определяющее, равны ли два значения Decimal.Returns a value that indicates whether two Decimal values are equal. Explicit(Single to Decimal) Explicit(Single to Decimal) Explicit(Single to Decimal) Explicit(Single to Decimal) Определяет явное преобразование числа с плавающей запятой одинарной точности в Decimal.Defines an explicit conversion of a single-precision floating-point number to a Decimal. Explicit(Double to Decimal) Explicit(Double to Decimal) Explicit(Double to Decimal) Explicit(Double to Decimal) Определяет явное преобразование числа с плавающей запятой двойной точности в Decimal.Defines an explicit conversion of a double-precision floating-point number to a Decimal. Explicit(Decimal to UInt32) Explicit(Decimal to UInt32) Explicit(Decimal to UInt32) Explicit(Decimal to UInt32) Определяет явное преобразование Decimal в 32-разрядное целое число без знака.Defines an explicit conversion of a Decimal to a 32-bit unsigned integer. Этот интерфейс API CLS-несовместим.This API is not CLS-compliant. Explicit(Decimal to UInt16) Explicit(Decimal to UInt16) Explicit(Decimal to UInt16) Explicit(Decimal to UInt16) Определяет явное преобразование Decimalв 16-разрядное целое число со знаком.Defines an explicit conversion of a Decimal to a 16-bit unsigned integer. Этот интерфейс API CLS-несовместим.This API is not CLS-compliant. Explicit(Decimal to Single) Explicit(Decimal to Single) Explicit(Decimal to Single) Explicit(Decimal to Single) Определяет явное преобразование Decimal в число с плавающей запятой одинарной точности.Defines an explicit conversion of a Decimal to a single-precision floating-point number. Explicit(Decimal to SByte) Explicit(Decimal to SByte) Explicit(Decimal to SByte) Explicit(Decimal to SByte) Определяет явное преобразование Decimal в 8-разрядное целое число со знаком.Defines an explicit conversion of a Decimal to an 8-bit signed integer. Этот интерфейс API CLS-несовместим.This API is not CLS-compliant. Explicit(Decimal to UInt64) Explicit(Decimal to UInt64) Explicit(Decimal to UInt64) Explicit(Decimal to UInt64) Определяет явное преобразование Decimal в 64-разрядное целое число без знака.Defines an explicit conversion of a Decimal to a 64-bit unsigned integer. Этот интерфейс API CLS-несовместим.This API is not CLS-compliant. Explicit(Decimal to Int32) Explicit(Decimal to Int32) Explicit(Decimal to Int32) Explicit(Decimal to Int32) Определяет явное преобразование Decimal в 32-разрядное целое число со знаком.Defines an explicit conversion of a Decimal to a 32-bit signed integer. Explicit(Decimal to Int16) Explicit(Decimal to Int16) Explicit(Decimal to Int16) Explicit(Decimal to Int16) Определяет явное преобразование Decimal в 16-разрядное целое число со знаком.Defines an explicit conversion of a Decimal to a 16-bit signed integer. Explicit(Decimal to Double) Explicit(Decimal to Double) Explicit(Decimal to Double) Explicit(Decimal to Double) Определяет явное преобразование Decimal в число с плавающей запятой двойной точности.Defines an explicit conversion of a Decimal to a double-precision floating-point number. Explicit(Decimal to Char) Explicit(Decimal to Char) Explicit(Decimal to Char) Explicit(Decimal to Char) Определяет явное преобразование объекта Decimal в символ Юникод.Defines an explicit conversion of a Decimal to a Unicode character. Explicit(Decimal to Byte) Explicit(Decimal to Byte) Explicit(Decimal to Byte) Explicit(Decimal to Byte) Определяет явное преобразование Decimalв 8-разрядное целое число со знаком.Defines an explicit conversion of a Decimal to an 8-bit unsigned integer. Explicit(Decimal to Int64) Explicit(Decimal to Int64) Explicit(Decimal to Int64) Explicit(Decimal to Int64) Определяет явное преобразование Decimal в 64-разрядное целое число со знаком.Defines an explicit conversion of a Decimal to a 64-bit signed integer. GreaterThan(Decimal, Decimal) GreaterThan(Decimal, Decimal) GreaterThan(Decimal, Decimal) GreaterThan(Decimal, Decimal) Возвращает значение, позволяющее определить, действительно ли заданное значение типа Decimal больше другого заданного значения типа Decimal.Returns a value indicating whether a specified Decimal is greater than another specified Decimal. GreaterThanOrEqual(Decimal, Decimal) GreaterThanOrEqual(Decimal, Decimal) GreaterThanOrEqual(Decimal, Decimal) GreaterThanOrEqual(Decimal, Decimal) Возвращает значение, позволяющее определить, действительно ли заданное значение типа Decimal больше или равно другому заданному значению типа Decimal.Returns a value indicating whether a specified Decimal is greater than or equal to another specified Decimal. Implicit(UInt32 to Decimal) Implicit(UInt32 to Decimal) Implicit(UInt32 to Decimal) Implicit(UInt32 to Decimal) Определяет неявное преобразование 32-разрядного целого числа без знака в значение типа Decimal.Defines an implicit conversion of a 32-bit unsigned integer to a Decimal. Этот интерфейс API CLS-несовместим.This API is not CLS-compliant. Implicit(UInt16 to Decimal) Implicit(UInt16 to Decimal) Implicit(UInt16 to Decimal) Implicit(UInt16 to Decimal) Определяет неявное преобразование 16-разрядного целого числа без знака в значение типа Decimal.Defines an implicit conversion of a 16-bit unsigned integer to a Decimal. Этот интерфейс API CLS-несовместим.This API is not CLS-compliant. Implicit(SByte to Decimal) Implicit(SByte to Decimal) Implicit(SByte to Decimal) Implicit(SByte to Decimal) Определяет неявное преобразование 8-разрядного целого числа со знаком в значение типа Decimal.Defines an implicit conversion of an 8-bit signed integer to a Decimal. Этот интерфейс API CLS-несовместим.This API is not CLS-compliant. Implicit(Int64 to Decimal) Implicit(Int64 to Decimal) Implicit(Int64 to Decimal) Implicit(Int64 to Decimal) Определяет неявное преобразование 64-разрядного целого числа со знаком в значение типа Decimal.Defines an implicit conversion of a 64-bit signed integer to a Decimal. Implicit(Byte to Decimal) Implicit(Byte to Decimal) Implicit(Byte to Decimal) Implicit(Byte to Decimal) Определяет неявное преобразование 8-разрядного целого числа без знака в значение типа Decimal.Defines an implicit conversion of an 8-bit unsigned integer to a Decimal. Implicit(Int16 to Decimal) Implicit(Int16 to Decimal) Implicit(Int16 to Decimal) Implicit(Int16 to Decimal) Определяет неявное преобразование 16-разрядного целого числа со знаком в значение типа Decimal.Defines an implicit conversion of a 16-bit signed integer to a Decimal. Implicit(Char to Decimal) Implicit(Char to Decimal) Implicit(Char to Decimal) Implicit(Char to Decimal) Определяет неявное преобразование символа Юникода в значение типа Decimal.Defines an implicit conversion of a Unicode character to a Decimal. Implicit(UInt64 to Decimal) Implicit(UInt64 to Decimal) Implicit(UInt64 to Decimal) Implicit(UInt64 to Decimal) Определяет неявное преобразование 64-разрядного целого числа без знака в значение типа Decimal.Defines an implicit conversion of a 64-bit unsigned integer to a Decimal. Этот интерфейс API CLS-несовместим.This API is not CLS-compliant. Implicit(Int32 to Decimal) Implicit(Int32 to Decimal) Implicit(Int32 to Decimal) Implicit(Int32 to Decimal) Определяет неявное преобразование 32-разрядного целого числа со знаком в значение типа Decimal.Defines an implicit conversion of a 32-bit signed integer to a Decimal. Increment(Decimal) Increment(Decimal) Increment(Decimal) Increment(Decimal) Увеличивает операнд Decimal на 1.Increments the Decimal operand by 1. Inequality(Decimal, Decimal) Inequality(Decimal, Decimal) Inequality(Decimal, Decimal) Inequality(Decimal, Decimal) Возвращает значение, указывающее, имеют ли два объекта Decimal различные значения.Returns a value that indicates whether two Decimal objects have different values. LessThan(Decimal, Decimal) LessThan(Decimal, Decimal) LessThan(Decimal, Decimal) LessThan(Decimal, Decimal) Возвращает значение, позволяющее определить, действительно ли заданное значение типа Decimal меньше другого заданного значения типа Decimal.Returns a value indicating whether a specified Decimal is less than another specified Decimal. LessThanOrEqual(Decimal, Decimal) LessThanOrEqual(Decimal, Decimal) LessThanOrEqual(Decimal, Decimal) LessThanOrEqual(Decimal, Decimal) Возвращает значение, позволяющее определить, действительно ли заданное значение типа Decimal меньше или равно другому заданному значению типа Decimal.Returns a value indicating whether a specified Decimal is less than or equal to another specified Decimal. Modulus(Decimal, Decimal) Modulus(Decimal, Decimal) Modulus(Decimal, Decimal) Modulus(Decimal, Decimal) Возвращает остаток от деления двух заданных значений Decimal.Returns the remainder resulting from dividing two specified Decimal values. Multiply(Decimal, Decimal) Multiply(Decimal, Decimal) Multiply(Decimal, Decimal) Multiply(Decimal, Decimal) Умножает два заданных значения типа Decimal.Multiplies two specified Decimal values. Subtraction(Decimal, Decimal) Subtraction(Decimal, Decimal) Subtraction(Decimal, Decimal) Subtraction(Decimal, Decimal) Находит разность двух заданных значений типа Decimal.Subtracts two specified Decimal values. UnaryNegation(Decimal) UnaryNegation(Decimal) UnaryNegation(Decimal) UnaryNegation(Decimal) Делает отрицательным значение заданного операнда типа Decimal.Negates the value of the specified Decimal operand. UnaryPlus(Decimal) UnaryPlus(Decimal) UnaryPlus(Decimal) UnaryPlus(Decimal) Возвращает значение операнда Decimal (знак операнда при этом не меняется).Returns the value of the Decimal operand (the sign of the operand is unchanged).

## Явные реализации интерфейса

 IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object) IConvertible.GetTypeCode() IConvertible.GetTypeCode() IConvertible.GetTypeCode() IConvertible.GetTypeCode() IConvertible.ToBoolean(IFormatProvider) IConvertible.ToBoolean(IFormatProvider) IConvertible.ToBoolean(IFormatProvider) IConvertible.ToBoolean(IFormatProvider) Описание этого члена см. в разделе ToBoolean(IFormatProvider).For a description of this member, see ToBoolean(IFormatProvider). IConvertible.ToByte(IFormatProvider) IConvertible.ToByte(IFormatProvider) IConvertible.ToByte(IFormatProvider) IConvertible.ToByte(IFormatProvider) Описание этого члена см. в разделе ToByte(IFormatProvider).For a description of this member, see ToByte(IFormatProvider). IConvertible.ToChar(IFormatProvider) IConvertible.ToChar(IFormatProvider) IConvertible.ToChar(IFormatProvider) IConvertible.ToChar(IFormatProvider) Данное преобразование не поддерживается.This conversion is not supported. При попытке использовать этот метод выбрасывается исключение InvalidCastException.Attempting to use this method throws an InvalidCastException. IConvertible.ToDateTime(IFormatProvider) IConvertible.ToDateTime(IFormatProvider) IConvertible.ToDateTime(IFormatProvider) IConvertible.ToDateTime(IFormatProvider) Данное преобразование не поддерживается.This conversion is not supported. При попытке использовать этот метод выбрасывается исключение InvalidCastException.Attempting to use this method throws an InvalidCastException. IConvertible.ToDecimal(IFormatProvider) IConvertible.ToDecimal(IFormatProvider) IConvertible.ToDecimal(IFormatProvider) IConvertible.ToDecimal(IFormatProvider) Описание этого члена см. в разделе ToDecimal(IFormatProvider).For a description of this member, see ToDecimal(IFormatProvider). IConvertible.ToDouble(IFormatProvider) IConvertible.ToDouble(IFormatProvider) IConvertible.ToDouble(IFormatProvider) IConvertible.ToDouble(IFormatProvider) Описание этого члена см. в разделе ToDouble(IFormatProvider).For a description of this member, see ToDouble(IFormatProvider). IConvertible.ToInt16(IFormatProvider) IConvertible.ToInt16(IFormatProvider) IConvertible.ToInt16(IFormatProvider) IConvertible.ToInt16(IFormatProvider) Описание этого члена см. в разделе ToInt16(IFormatProvider).For a description of this member, see ToInt16(IFormatProvider). IConvertible.ToInt32(IFormatProvider) IConvertible.ToInt32(IFormatProvider) IConvertible.ToInt32(IFormatProvider) IConvertible.ToInt32(IFormatProvider) Описание этого члена см. в разделе ToInt32(IFormatProvider).For a description of this member, see ToInt32(IFormatProvider). IConvertible.ToInt64(IFormatProvider) IConvertible.ToInt64(IFormatProvider) IConvertible.ToInt64(IFormatProvider) IConvertible.ToInt64(IFormatProvider) Описание этого члена см. в разделе ToInt64(IFormatProvider).For a description of this member, see ToInt64(IFormatProvider). IConvertible.ToSByte(IFormatProvider) IConvertible.ToSByte(IFormatProvider) IConvertible.ToSByte(IFormatProvider) IConvertible.ToSByte(IFormatProvider) Описание этого члена см. в разделе ToSByte(IFormatProvider).For a description of this member, see ToSByte(IFormatProvider). IConvertible.ToSingle(IFormatProvider) IConvertible.ToSingle(IFormatProvider) IConvertible.ToSingle(IFormatProvider) IConvertible.ToSingle(IFormatProvider) Описание этого члена см. в разделе ToSingle(IFormatProvider).For a description of this member, see ToSingle(IFormatProvider). IConvertible.ToType(Type, IFormatProvider) IConvertible.ToType(Type, IFormatProvider) IConvertible.ToType(Type, IFormatProvider) IConvertible.ToType(Type, IFormatProvider) Описание этого члена см. в разделе ToType(Type, IFormatProvider).For a description of this member, see ToType(Type, IFormatProvider). IConvertible.ToUInt16(IFormatProvider) IConvertible.ToUInt16(IFormatProvider) IConvertible.ToUInt16(IFormatProvider) IConvertible.ToUInt16(IFormatProvider) Описание этого члена см. в разделе ToUInt16(IFormatProvider).For a description of this member, see ToUInt16(IFormatProvider). IConvertible.ToUInt32(IFormatProvider) IConvertible.ToUInt32(IFormatProvider) IConvertible.ToUInt32(IFormatProvider) IConvertible.ToUInt32(IFormatProvider) Описание этого члена см. в разделе ToInt32(IFormatProvider).For a description of this member, see ToInt32(IFormatProvider). IConvertible.ToUInt64(IFormatProvider) IConvertible.ToUInt64(IFormatProvider) IConvertible.ToUInt64(IFormatProvider) IConvertible.ToUInt64(IFormatProvider) Описание этого члена см. в разделе ToInt64(IFormatProvider).For a description of this member, see ToInt64(IFormatProvider). IDeserializationCallback.OnDeserialization(Object) IDeserializationCallback.OnDeserialization(Object) IDeserializationCallback.OnDeserialization(Object) IDeserializationCallback.OnDeserialization(Object) Выполняется после завершения десериализации объекта.Runs when the deserialization of an object has been completed.

## Потокобезопасность

Все члены этого типа являются потокобезопасными.All members of this type are thread safe. Члены, которые могут изменить состояние экземпляра, в действительности возвращают новый экземпляр, инициализированный новым значением.Members that appear to modify instance state actually return a new instance initialized with the new value. Как с любым другим типом, чтение и запись общей переменной, которая содержит экземпляр этого типа, должны быть защищены блокировкой для обеспечения потокобезопасности.As with any other type, reading and writing to a shared variable that contains an instance of this type must be protected by a lock to guarantee thread safety.