小编Ale*_*x K的帖子

C# DWORD 和 QWORD - 有符号和无符号的疯狂

我注意到写入注册表时的DWord和QWord值应该是有符号整数,而不是无符号整数。如果值为 UInt64 或 UInt32,此代码将引发异常:

registryKey.SetValue(name, value);
Run Code Online (Sandbox Code Playgroud)

根据 MSDNDWORD是一个 32 位无符号整数(范围:0 到 4294967295 十进制)https://msdn.microsoft.com/en-us/library/cc230318.aspx

因此,要将新DWORD值写入注册表,我需要将其转换为有符号整数,如下所示:

UInt32 unsignedValue = (UInt32)someValue;
Int32 signedValue = (Int32)unsignedValue;
registryKey.SetValue(name, signedValue);
Run Code Online (Sandbox Code Playgroud)

将无符号值传递给SetValue方法将引发异常。我是错过了什么还是我只是被智障了?

c# registry dword

5
推荐指数
1
解决办法
2478
查看次数

标签 统计

c# ×1

dword ×1

registry ×1