为什么我的标签字段在此 c# 代码中给我一个错误

本文关键字:错误 一个 字段 标签 我的 代码 为什么 | 更新日期: 2023-09-27 18:31:21

我对 c# 有点陌生,所以如果有人请告诉我为什么我会收到错误

  private void button2_Click(object sender, EventArgs e)
    {
        lblTaskManager.Text = null;
        RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey(
               @"Software'Microsoft'Windows'CurrentVersion'Policies'System");
            try
            {
                if (objRegistryKey.GetValue("DisableTaskMgr") == null)
                    objRegistryKey.SetValue("DisableTaskMgr", "1");
                lblTaskManager.Text = ("Disabled");
            else
                objRegistryKey.DeleteValue("DisableTaskMgr");
                objRegistryKey.Close();
                lblTaskManager.Text = ("Enabled");
            }
            catch
            { }
        }
    }
} 

错误位于("禁用");它表明需要 },但添加它不会改变任何内容。以及将来如何避免此错误。

为什么我的标签字段在此 c# 代码中给我一个错误

使用 { } correct,if:

            if (objRegistryKey.GetValue("DisableTaskMgr") == null)
            {
                objRegistryKey.SetValue("DisableTaskMgr", "1");
                lblTaskManager.Text = ("Disabled");
            }
            else
            {
                objRegistryKey.DeleteValue("DisableTaskMgr");
                objRegistryKey.Close();
                lblTaskManager.Text = ("Enabled");
            }

( ) 不是必需的,但不应损害您的代码。

也许你应该将 objRegistryKey.Close(); 移动到最后的 try catch。

嗯,

  1. RegistryKey创作放入using并删除显式Close()
  2. if后添加{}else
  3. 删除分配的字符串周围的()
  4. 放弃这个噩梦try { ... } catch {}(忽略所有引发的异常),永远不要再使用这样的代码。

像这样:

  using (RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey(
           "@Software'Microsoft'Windows'CurrentVersion'Policies'System")) {
    if (objRegistryKey.GetValue("DisableTaskMgr") == null) {
      objRegistryKey.SetValue("DisableTaskMgr", "1");
      lblTaskManager.Text = "Disabled";
    }
    else {
      objRegistryKey.DeleteValue("DisableTaskMgr");
      lblTaskManager.Text = "Enabled";
    }
  }
相关文章: