0

我想使用 C# 读取注册表中的值,如果值不在我创建的注册表中。我有一个阅读问题:

 RegistryKey regKey1 = Registry.CurrentUser;
 regKey1 = regKey1.CreateSubKey(@"SOFTWARE\PNMDISPATCHER");

 if (regKey1 != null)
 {
  textBoxTaux1.Text = regKey1.GetValue("Taux1").ToString();
 }

我有NullReferenceException执行该GetValue功能的时间。我的值在注册表中,为什么会出现此错误?

4

3 回答 3

1

好吧,显然你没有找到正确的路径..

GetValueNull未找到密钥时返回 a 。还要检查http://msdn.microsoft.com/en-us/library/fdf576x1

您可以通过它进行调试并仔细检查您想要查看的路径是否确实在文本框行的 regKey1 变量中?

于 2012-07-11T10:16:41.187 回答
1

看起来 RegistryKey.GetValue 正在返回 null 并且不能执行 .ToString()

取自 MSDN 的 RegistryKey.GetValue:

检索与指定名称关联的值。如果注册表中不存在名称/值对,则返回 null。

于 2012-07-11T10:16:45.050 回答
0

也许 NullReferenceException 是针对 textBoxTaux1 的?请发布异常的调用堆栈,这应该清楚。您可以使用 Exception.ToString() 来获取它。

于 2012-07-11T10:26:21.173 回答