为什么我的标签字段在此 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
{ }
}
}
}
错误位于("禁用");它表明需要 },但添加它不会改变任何内容。以及将来如何避免此错误。
使用 { } 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。
嗯,
- 将
RegistryKey
创作放入using
并删除显式Close()
。 - 在
if
后添加{}
并else
。 - 删除分配的字符串周围的
()
。 - 放弃这个噩梦
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";
}
}