Как объявить IntPtr?
У меня есть средство выбора ручки окна, и оно говорит, что моя ручка 0094167C. Когда я объявляю переменную в C#, буква в этом коде выдает ошибку. Как объявить?
public const IntPtr WinHandle = 0094167C;
3 ответа
Вы знаете, что дескриптор, как правило, будет меняться при каждом запуске приложения и / или системы? Это означает, что ваша константа в любом случае подвержена сбоям.
Однако если вы действительно хотите присвоить константу, отличную от нуля, IntPtr
(что будет IntPtr.Zero
), в документации говорится, что есть конструкторы, которые принимают Int32
, Int64
или же Void*
в качестве параметра.
Как указывает OregonGhost, вы, вероятно, не хотите делать это для дескриптора окна. Тем не менее, для IntPtr в целом, то, что вы можете сделать, это статические поля только для чтения:
static readonly IntPtr TenK = new IntPtr(1024 * 10000);
Я хотел бы добавить к ответу AgnosticOracle.
В дополнение к постоянным переменным IntPtr/UIntPtr, доступным только для чтения, вы можете использоватьnint
иnuint
которые поддерживаются IntPtr и UIntPtr соответственно.
Этим типам могут быть назначены целые и беззнаковые целые значения, а также они могут быть определены как константы.