嘗試修復Null值時,我遇到了C#(我是新手)的問題。 因此我有一個變量「verif」(String verif = String.Empty;),我用它從Windows註冊表中讀取一些密鑰。如果密鑰存在,我的代碼可以工作,但是當它沒有出現錯誤「NullReferanceException未處理」時。 我嘗試了幾種方法來捕捉異常,併發出「If」聲明,但我失敗了。 我的代碼是這樣的:在C中打開註冊表項時出現空值錯誤
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
{...
任何提示? 非常感謝,Bogdan。
如果您在Visual Studio中以調試模式運行此代碼,那麼哪一行會指示引發未處理的異常?此外,您可能會從Microsoft的C#程序員指南有關[異常和異常處理](http://msdn.microsoft.com/zh-cn/library/ms173160.aspx) – Adrian
的文章中獲得一些價值。錯誤是針對「verif」變量,在行「verif = Registry.CurrentUser.OpenSubKey(@」Software \ TDCredentials「)。GetValue(」user_mdw_「+ tara +」_CC「)。ToString();」並且只有在沒有註冊表鍵的情況下才能滿足需求。例如,有一個值爲「100」的註冊表鍵「JOHN」,我的變量「verif」搜索它。如果「JOHN」存在,作爲註冊表鍵值,則代碼沒有錯誤。如果不是C#引發了線程中提到的錯誤,則未處理的值爲空值。 – BogdanM