UIntPtr Структура

Определение

Важно!

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

Представляет целое число без знака, в котором битовая ширина совпадает с указателем.

public value class UIntPtr
public value class UIntPtr : IComparable, IComparable<UIntPtr>, IEquatable<UIntPtr>, IFormattable, System::Runtime::Serialization::ISerializable
public value class UIntPtr : IComparable, IComparable<UIntPtr>, IEquatable<UIntPtr>, ISpanFormattable, System::Runtime::Serialization::ISerializable
public value class UIntPtr : IComparable<UIntPtr>, IEquatable<UIntPtr>, IParsable<UIntPtr>, ISpanParsable<UIntPtr>, System::Numerics::IAdditionOperators<UIntPtr, UIntPtr, UIntPtr>, System::Numerics::IAdditiveIdentity<UIntPtr, UIntPtr>, System::Numerics::IBinaryInteger<UIntPtr>, System::Numerics::IBinaryNumber<UIntPtr>, System::Numerics::IBitwiseOperators<UIntPtr, UIntPtr, UIntPtr>, System::Numerics::IComparisonOperators<UIntPtr, UIntPtr>, System::Numerics::IDecrementOperators<UIntPtr>, System::Numerics::IDivisionOperators<UIntPtr, UIntPtr, UIntPtr>, System::Numerics::IEqualityOperators<UIntPtr, UIntPtr>, System::Numerics::IIncrementOperators<UIntPtr>, System::Numerics::IMinMaxValue<UIntPtr>, System::Numerics::IModulusOperators<UIntPtr, UIntPtr, UIntPtr>, System::Numerics::IMultiplicativeIdentity<UIntPtr, UIntPtr>, System::Numerics::IMultiplyOperators<UIntPtr, UIntPtr, UIntPtr>, System::Numerics::INumber<UIntPtr>, System::Numerics::INumberBase<UIntPtr>, System::Numerics::IShiftOperators<UIntPtr, UIntPtr>, System::Numerics::ISubtractionOperators<UIntPtr, UIntPtr, UIntPtr>, System::Numerics::IUnaryNegationOperators<UIntPtr, UIntPtr>, System::Numerics::IUnaryPlusOperators<UIntPtr, UIntPtr>, System::Numerics::IUnsignedNumber<UIntPtr>, System::Runtime::Serialization::ISerializable
public value class UIntPtr : IEquatable<UIntPtr>, System::Runtime::Serialization::ISerializable
public value class UIntPtr : System::Runtime::Serialization::ISerializable
[System.CLSCompliant(false)]
public struct UIntPtr
[System.CLSCompliant(false)]
public readonly struct UIntPtr : IComparable, IComparable<UIntPtr>, IEquatable<UIntPtr>, IFormattable, System.Runtime.Serialization.ISerializable
[System.CLSCompliant(false)]
public readonly struct UIntPtr : IComparable, IComparable<UIntPtr>, IEquatable<UIntPtr>, ISpanFormattable, System.Runtime.Serialization.ISerializable
[System.CLSCompliant(false)]
public readonly struct UIntPtr : IComparable<UIntPtr>, IEquatable<UIntPtr>, IParsable<UIntPtr>, ISpanParsable<UIntPtr>, System.Numerics.IAdditionOperators<UIntPtr,UIntPtr,UIntPtr>, System.Numerics.IAdditiveIdentity<UIntPtr,UIntPtr>, System.Numerics.IBinaryInteger<UIntPtr>, System.Numerics.IBinaryNumber<UIntPtr>, System.Numerics.IBitwiseOperators<UIntPtr,UIntPtr,UIntPtr>, System.Numerics.IComparisonOperators<UIntPtr,UIntPtr>, System.Numerics.IDecrementOperators<UIntPtr>, System.Numerics.IDivisionOperators<UIntPtr,UIntPtr,UIntPtr>, System.Numerics.IEqualityOperators<UIntPtr,UIntPtr>, System.Numerics.IIncrementOperators<UIntPtr>, System.Numerics.IMinMaxValue<UIntPtr>, System.Numerics.IModulusOperators<UIntPtr,UIntPtr,UIntPtr>, System.Numerics.IMultiplicativeIdentity<UIntPtr,UIntPtr>, System.Numerics.IMultiplyOperators<UIntPtr,UIntPtr,UIntPtr>, System.Numerics.INumber<UIntPtr>, System.Numerics.INumberBase<UIntPtr>, System.Numerics.IShiftOperators<UIntPtr,UIntPtr>, System.Numerics.ISubtractionOperators<UIntPtr,UIntPtr,UIntPtr>, System.Numerics.IUnaryNegationOperators<UIntPtr,UIntPtr>, System.Numerics.IUnaryPlusOperators<UIntPtr,UIntPtr>, System.Numerics.IUnsignedNumber<UIntPtr>, System.Runtime.Serialization.ISerializable
[System.CLSCompliant(false)]
public struct UIntPtr : IEquatable<UIntPtr>, System.Runtime.Serialization.ISerializable
[System.CLSCompliant(false)]
public readonly struct UIntPtr : IEquatable<UIntPtr>, System.Runtime.Serialization.ISerializable
[System.CLSCompliant(false)]
[System.Serializable]
public struct UIntPtr : System.Runtime.Serialization.ISerializable
[System.CLSCompliant(false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct UIntPtr : System.Runtime.Serialization.ISerializable
[System.CLSCompliant(false)]
public struct UIntPtr : System.Runtime.Serialization.ISerializable
[<System.CLSCompliant(false)>]
type unativeint = struct
[<System.CLSCompliant(false)>]
type unativeint = struct
    interface IFormattable
    interface ISerializable
[<System.CLSCompliant(false)>]
type unativeint = struct
    interface ISpanFormattable
    interface IFormattable
    interface ISerializable
[<System.CLSCompliant(false)>]
type unativeint = struct
    interface IFormattable
    interface IParsable<unativeint>
    interface ISpanFormattable
    interface ISpanParsable<unativeint>
    interface IAdditionOperators<unativeint, unativeint, unativeint>
    interface IAdditiveIdentity<unativeint, unativeint>
    interface IBinaryInteger<unativeint>
    interface IBinaryNumber<unativeint>
    interface IBitwiseOperators<unativeint, unativeint, unativeint>
    interface IComparisonOperators<unativeint, unativeint>
    interface IEqualityOperators<unativeint, unativeint>
    interface IDecrementOperators<unativeint>
    interface IDivisionOperators<unativeint, unativeint, unativeint>
    interface IIncrementOperators<unativeint>
    interface IModulusOperators<unativeint, unativeint, unativeint>
    interface IMultiplicativeIdentity<unativeint, unativeint>
    interface IMultiplyOperators<unativeint, unativeint, unativeint>
    interface INumber<unativeint>
    interface INumberBase<unativeint>
    interface ISubtractionOperators<unativeint, unativeint, unativeint>
    interface IUnaryNegationOperators<unativeint, unativeint>
    interface IUnaryPlusOperators<unativeint, unativeint>
    interface IShiftOperators<unativeint, unativeint>
    interface IMinMaxValue<unativeint>
    interface IUnsignedNumber<unativeint>
    interface ISerializable
[<System.CLSCompliant(false)>]
type unativeint = struct
    interface ISerializable
[<System.CLSCompliant(false)>]
[<System.Serializable>]
type unativeint = struct
    interface ISerializable
[<System.CLSCompliant(false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type unativeint = struct
    interface ISerializable
Public Structure UIntPtr
Public Structure UIntPtr
Implements IComparable, IComparable(Of UIntPtr), IEquatable(Of UIntPtr), IFormattable, ISerializable
Public Structure UIntPtr
Implements IComparable, IComparable(Of UIntPtr), IEquatable(Of UIntPtr), ISerializable, ISpanFormattable
Public Structure UIntPtr
Implements IAdditionOperators(Of UIntPtr, UIntPtr, UIntPtr), IAdditiveIdentity(Of UIntPtr, UIntPtr), IBinaryInteger(Of UIntPtr), IBinaryNumber(Of UIntPtr), IBitwiseOperators(Of UIntPtr, UIntPtr, UIntPtr), IComparable(Of UIntPtr), IComparisonOperators(Of UIntPtr, UIntPtr), IDecrementOperators(Of UIntPtr), IDivisionOperators(Of UIntPtr, UIntPtr, UIntPtr), IEqualityOperators(Of UIntPtr, UIntPtr), IEquatable(Of UIntPtr), IIncrementOperators(Of UIntPtr), IMinMaxValue(Of UIntPtr), IModulusOperators(Of UIntPtr, UIntPtr, UIntPtr), IMultiplicativeIdentity(Of UIntPtr, UIntPtr), IMultiplyOperators(Of UIntPtr, UIntPtr, UIntPtr), INumber(Of UIntPtr), INumberBase(Of UIntPtr), IParsable(Of UIntPtr), ISerializable, IShiftOperators(Of UIntPtr, UIntPtr), ISpanParsable(Of UIntPtr), ISubtractionOperators(Of UIntPtr, UIntPtr, UIntPtr), IUnaryNegationOperators(Of UIntPtr, UIntPtr), IUnaryPlusOperators(Of UIntPtr, UIntPtr), IUnsignedNumber(Of UIntPtr)
Public Structure UIntPtr
Implements IEquatable(Of UIntPtr), ISerializable
Public Structure UIntPtr
Implements ISerializable
Наследование
UIntPtr
Атрибуты
Реализации
IComparable IComparable<UIntPtr> IEquatable<UIntPtr> IFormattable ISerializable ISpanFormattable IComparable<TOther> IComparable<TSelf> IEquatable<TOther> IEquatable<TSelf> IParsable<UIntPtr> IParsable<TSelf> ISpanParsable<UIntPtr> ISpanParsable<TSelf> IAdditionOperators<UIntPtr,UIntPtr,UIntPtr> IAdditionOperators<TSelf,TSelf,TSelf> IAdditiveIdentity<UIntPtr,UIntPtr> IAdditiveIdentity<TSelf,TSelf> IBinaryInteger<UIntPtr> IBinaryNumber<UIntPtr> IBinaryNumber<TSelf> IBitwiseOperators<UIntPtr,UIntPtr,UIntPtr> IBitwiseOperators<TSelf,TSelf,TSelf> System.Numerics.IComparisonOperators<UIntPtr,UIntPtr> System.Numerics.IComparisonOperators<TSelf,TSelf> IDecrementOperators<UIntPtr> IDecrementOperators<TSelf> IDivisionOperators<UIntPtr,UIntPtr,UIntPtr> IDivisionOperators<TSelf,TSelf,TSelf> System.Numerics.IEqualityOperators<UIntPtr,UIntPtr> System.Numerics.IEqualityOperators<TSelf,TOther> System.Numerics.IEqualityOperators<TSelf,TSelf> IIncrementOperators<UIntPtr> IIncrementOperators<TSelf> IMinMaxValue<UIntPtr> IModulusOperators<UIntPtr,UIntPtr,UIntPtr> IModulusOperators<TSelf,TSelf,TSelf> IMultiplicativeIdentity<UIntPtr,UIntPtr> IMultiplicativeIdentity<TSelf,TSelf> IMultiplyOperators<UIntPtr,UIntPtr,UIntPtr> IMultiplyOperators<TSelf,TSelf,TSelf> INumber<UIntPtr> INumber<TSelf> INumberBase<UIntPtr> INumberBase<TSelf> System.Numerics.IShiftOperators<UIntPtr,UIntPtr> System.Numerics.IShiftOperators<TSelf,TSelf> ISubtractionOperators<UIntPtr,UIntPtr,UIntPtr> ISubtractionOperators<TSelf,TSelf,TSelf> IUnaryNegationOperators<UIntPtr,UIntPtr> IUnaryNegationOperators<TSelf,TSelf> IUnaryPlusOperators<UIntPtr,UIntPtr> IUnaryPlusOperators<TSelf,TSelf> IUnsignedNumber<UIntPtr>

Комментарии

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

Этот UIntPtr тип может использоваться языками, поддерживающими указатели, и в качестве общего средства ссылки на данные между языками, которые делают и не поддерживают указатели. UIntPtr объекты также можно использовать для хранения дескрипторов.

Примечание

Использование UIntPtr в качестве указателя или дескриптора подвержено ошибкам и небезопасно. Это просто целочисленный тип, который можно использовать в качестве формата обмена для указателей и дескрипторов из-за того, что он имеет одинаковый размер. Вне особых требований к обмену, например для передачи данных на язык, который не поддерживает указатели, следует использовать правильно типизированный указатель для представления указателей и SafeHandle использовать для представления дескрипторов.

Этот тип реализует .ISerializable В .NET 5 и более поздних версиях этот тип также реализует IFormattable интерфейсы. В .NET 7 и более поздних версиях этот тип также реализует IBinaryInteger<TSelf>интерфейсы и ,IMinMaxValue<TSelf>а IUnsignedNumber<TSelf> также интерфейсы.

В C# начиная с версии 9.0 можно использовать встроенный nuint тип для определения целых чисел собственного размера. Этот тип представлен внутренним типом UIntPtr и предоставляет операции и преобразования, подходящие для целочисленных типов. Дополнительные сведения см. в описании типов nint и nuint.

В C# начиная с версии 11 и при нацелии на среду выполнения .NET 7 или более поздней версии, nuint это псевдоним UIntPtr таким же образом, как uint и псевдоним.UInt32

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

UIntPtr(UInt32)

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

UIntPtr(UInt64)

Инициализирует новый экземпляр с использованием указанного 64-разрядного целого UIntPtr числа без знака.

UIntPtr(Void*)

Инициализирует новый экземпляр структуры UIntPtr с использованием заданного указателя на незаданный тип.

Поля

Zero

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

Свойства

MaxValue

Представляет наибольшее возможное значение типа UIntPtr.

MinValue

Представляет минимально допустимое значение типа UIntPtr.

Size

Получает размер этого экземпляра.

Методы

Add(UIntPtr, Int32)

Добавляет смещение в целое число без знака.

Clamp(UIntPtr, UIntPtr, UIntPtr)

Приклоняет значение к инклюзивному минимальному и максимальному значению.

CompareTo(Object)

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

CompareTo(UIntPtr)

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

DivRem(UIntPtr, UIntPtr)

Вычисляет цитент и оставшуюся часть двух значений.

Equals(Object)

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

Equals(UIntPtr)

Указывает, равен ли текущий объект другому объекту того же типа.

GetHashCode()

Возвращает хэш-код данного экземпляра.

IsEvenInteger(UIntPtr)

Определяет, представляет ли значение четное целочисленное число.

IsOddInteger(UIntPtr)

Определяет, представляет ли значение нечетное целочисленное число.

IsPow2(UIntPtr)

Определяет, является ли значение степенью двух.

LeadingZeroCount(UIntPtr)

Вычисляет число начальных нулей в значении.

Log2(UIntPtr)

Вычисляет журнал 2 значения.

Max(UIntPtr, UIntPtr)

Сравнивает два значения с вычислениями, которые больше.

Min(UIntPtr, UIntPtr)

Сравнивает два значения с вычислениями, которые меньше.

Parse(ReadOnlySpan<Char>, IFormatProvider)
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

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

Parse(String)

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

Parse(String, IFormatProvider)

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

Parse(String, NumberStyles)

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

Parse(String, NumberStyles, IFormatProvider)

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

PopCount(UIntPtr)

Вычисляет количество битов, заданных в значении.

RotateLeft(UIntPtr, Int32)

Сменяет значение, оставленное заданной суммой.

RotateRight(UIntPtr, Int32)

Поворачивает значение вправо на заданное значение.

Sign(UIntPtr)

Вычисляет знак значения.

Subtract(UIntPtr, Int32)

Вычитает смещение из целого числа без знака.

ToPointer()

Преобразует значение этого экземпляра в указатель незаданного типа.

ToString()

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

ToString(IFormatProvider)

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

ToString(String)

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

ToString(String, IFormatProvider)

Форматирует значение текущего экземпляра, используя указанный формат.

ToUInt32()

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

ToUInt64()

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

TrailingZeroCount(UIntPtr)

Вычисляет число конечных нулей в значении.

TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Пытается отформатировать значение текущего экземпляра в указанный диапазон символов.

TryParse(ReadOnlySpan<Char>, IFormatProvider, UIntPtr)
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, UIntPtr)

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

TryParse(ReadOnlySpan<Char>, UIntPtr)

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

TryParse(String, IFormatProvider, UIntPtr)
TryParse(String, NumberStyles, IFormatProvider, UIntPtr)

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

TryParse(String, UIntPtr)

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

Операторы

Addition(UIntPtr, Int32)

Добавляет смещение в целое число без знака.

Equality(UIntPtr, UIntPtr)

Определяет, равны ли два заданных экземпляра класса UIntPtr.

Explicit(UInt32 to UIntPtr)

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

Explicit(UInt64 to UIntPtr)

Преобразует значение 64-битового целого числа без знака в значение типа UIntPtr.

Explicit(UIntPtr to UInt32)

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

Explicit(UIntPtr to UInt64)

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

Explicit(UIntPtr to Void*)

Преобразует значение заданной структуры UIntPtr в указатель на незаданный тип.

Этот интерфейс API CLS-несовместим.

Explicit(Void* to UIntPtr)

Преобразует заданный указатель на незаданный тип в UIntPtr.

Этот интерфейс API CLS-несовместим.

Inequality(UIntPtr, UIntPtr)

Определяет, являются ли два заданных экземпляра класса UIntPtr неравными.

Subtraction(UIntPtr, Int32)

Вычитает смещение из целого числа без знака.

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

IBinaryInteger<UIntPtr>.GetByteCount()

Возвращает число байтов, которые будут записаны в составе TryWriteLittleEndian(Span<Byte>, Int32).

IBinaryInteger<UIntPtr>.GetShortestBitLength()

Возвращает длину (в битах) в представлении дополнения кратчайшего двоих текущего значения.

IBinaryInteger<UIntPtr>.TryWriteBigEndian(Span<Byte>, Int32)

Пытается записать текущее значение в формате big-endian в заданный диапазон.

IBinaryInteger<UIntPtr>.TryWriteLittleEndian(Span<Byte>, Int32)

Пытается записать текущее значение в минимальном формате в заданный диапазон.

IEquatable<UIntPtr>.Equals(UIntPtr)

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

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Заполняет объект SerializationInfo данными, необходимыми для сериализации текущего объекта UIntPtr.

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

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

Данный тип потокобезопасен.

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