C# 将值对象转换为正确的RegistryValueKind

C# 将值对象转换为正确的RegistryValueKind,c#,registry,C#,Registry,我正在尝试使用代码中的此行编辑注册表中的值: dontAskOptions.SetValue("IDS_WARN_GENERAL_WINXP_EOL", 0xffffffff, RegistryValueKind.DWord); 程序抛出一个错误,指出“值对象与指定的注册表ValueKind不匹配,或者对象无法正确转换”。我猜0xFFFFFF不是DWord值。如何正确转换此值?您可能需要使用带符号的int。您可以使用强制转换来转换它 是的,.NETFramework代码没有赢得任何奖项。它明目

我正在尝试使用代码中的此行编辑注册表中的值:

dontAskOptions.SetValue("IDS_WARN_GENERAL_WINXP_EOL", 0xffffffff, RegistryValueKind.DWord);

程序抛出一个错误,指出“值对象与指定的注册表ValueKind不匹配,或者对象无法正确转换”。我猜0xFFFFFF不是DWord值。如何正确转换此值?

您可能需要使用带符号的int。您可以使用强制转换来转换它


是的,.NETFramework代码没有赢得任何奖项。它明目张胆地假设您传递了一个int,即使您指定了DWord。您可以使用-1代替。
dontAskOptions.SetValue(
    "IDS_WARN_GENERAL_WINXP_EOL", 
    unchecked((int) 0xffffffff), 
    RegistryValueKind.DWord);