Cal*_*ods 1 c# visual-studio-2010
我在处理按钮单击事件的一些简单代码上遇到NullReferenceException错误.我仍然只需要在最后添加一些代码来实际显示消息框中"TcpAddr"的值.这将允许您运行程序,但单击该按钮会导致它抛出错误.
另外:更好的做法是将实际查询移出click事件,只需使click事件处理MessageBox.Show()?
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
namespace LiteSwitch
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
RegistryKey RegKey = Registry.LocalMachine;
RegKey = RegKey.OpenSubKey("SOFTWARE\\Altiris\\Client Service");
object CurrDS = RegKey.GetValue("TcpAddr"); //This line causes the NRE Error
MessageBox.Show("Current DS:");
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您确定注册表项实际存在(使用Regedit.exe),那么如果您在64位版本的Windows上运行,则会遇到问题.默认情况下,VS2010项目被强制以32位模式运行,它会看到另一组注册表项.
Project + Properties,Build选项卡,Platform Target =任何CPU.重复发布配置.