gpt4 book ai didi

c# - 在 C# 中打开注册表项时出现 Null 值错误

转载 作者:行者123 更新时间:2023-12-03 04:52:50 25 4
gpt4 key购买 nike

在尝试修复 Null 值时,我遇到了 C# 问题(我是新手)。 因此我有一个变量“verif”(String verif = String.Empty;),我用它从Windows注册表中读取一些键。如果 key 存在,我的代码就可以工作,但是如果不存在,我就会收到错误“NullReferanceException 未处理”。 我尝试了多种方法来捕获异常,添加“If”语句,但失败得很惨。 我的代码是这样的:

RegistryKey key_user;
RegistryKey key_pwd;
String code = String.Empty;
String tara = String.Empty;
String tot = String.Empty;
String pwd_mdw = String.Empty;
String user_mdw = String.Empty;
String user_uca = String.Empty;
String pwd_uca = String.Empty;
String verif = String.Empty;
private void button1_Click(object sender, EventArgs e)
{tot = listBox1.SelectedValue.ToString();
//MessageBox.Show(tot);
tara = tot.Substring(tot.Length - 2, 2);
//MessageBox.Show(tara);
code = listBox1.SelectedValue.ToString().Substring(0, 2);
user_mdw = textBox1.Text;
//MessageBox.Show(user_mdw);
pwd_mdw = textBox2.Text;
//MessageBox.Show(pwd_mdw);
if (code == "CC")
{
verif = Registry.CurrentUser.OpenSubKey(@"Software\TDCredentials").GetValue("user_mdw_" + tara + "_CC").ToString();
MessageBox.Show("Verif",verif);
MessageBox.Show(user_mdw, "user_mdw");
if (verif==null)
{
key_user = Registry.CurrentUser.CreateSubKey("Software\\TDCredentials");
key_user.SetValue("user_mdw_" + tara + "_CC", user_mdw);
key_user.Close();
key_pwd = Registry.CurrentUser.CreateSubKey("Software\\TDCredentials");
key_pwd.SetValue("pass_mdw_" + tara + "_CC", pwd_mdw);
key_pwd.Close();
MessageBox.Show("User and Password inserted successfully!");
textBox1.Clear();
textBox2.Clear();
}
else
{...

有什么提示吗?非常感谢,博格丹。

最佳答案

看看您正在尝试做什么,这一行很可能是您的问题(之一);

verif = Registry.CurrentUser.OpenSubKey(@"Software\TDCredentials")
.GetValue("user_mdw_" + tara + "_CC").ToString();

如果该键不存在,OpenSubKey 将返回 null,并且您可以在不进行检查的情况下调用 GetValue()

您可以更改该行以添加检查,例如;

var key = Registry.CurrentUser.OpenSubKey(@"Software\TDCredentials");
var value = key != null ? key.GetValue("user_mdw_" + tara + "_CC") : null;
verif = value != null ? value.ToString() : null;

if(verif == null) {
...

关于c# - 在 C# 中打开注册表项时出现 Null 值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18328257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com