我想使用C#在注册表中读取值,如果值不在注册表中我创建它。我有阅读问题:
RegistryKey regKey1 = Registry.CurrentUser;
regKey1 = regKey1.CreateSubKey(@"SOFTWARE\PNMDISPATCHER");
if (regKey1 != null)
{
textBoxTaux1.Text = regKey1.GetValue("Taux1").ToString();
}
执行NullReferenceException
功能时,我有GetValue
。
我的值在注册表中,为什么我会收到此错误?
答案 0 :(得分:1)
嗯,显然你没有把路径弄好......
找不到密钥时, GetValue
会返回Null
。另请检查http://msdn.microsoft.com/en-us/library/fdf576x1
你能通过它调试并仔细检查你想看到的路径,确实在文本框行的regKey1变量中吗?
答案 1 :(得分:0)
看起来RegistryKey.GetValue返回null并且无法执行.ToString()
从MSDN获取RegistryKey.GetValue:
检索与指定名称关联的值。返回null 如果注册表中不存在名称/值对。
答案 2 :(得分:0)
也许NullReferenceException是针对textBoxTaux1的?请发布调用堆栈以查看异常,以便明确这一点。您可以使用Exception.ToString()来获取此信息。