opcua连接中未将对象引用设置到对象的实例

在做opcua通讯,复制的之前成功调试的项目到新项目中,出现了连接委托未将对象引用设置到对象的实例。打断点比较两边发现GetConnectStatus都是true,但是新项目显示 delConnectStatus=null;而原项目的会显示方法。这是怎么回事,我都没改动过代码。

img

    public partial class communication : Form
    {
        #region   基础参数

        //OPCUA帮助类
        private OPCUAHelper oPCUAHelper = new OPCUAHelper();


        //定义委托
        public GlobalPara.DelConnectStatus delConnectStatus;

        //服务器信息
        private string serverInfo;

        #endregion 
        public communication()
        {
            InitializeComponent();
        }
        #region   按钮方法
        //匿名登陆按钮
        private void Btn_AnonymouseLogin_Click(object sender, EventArgs e)
        {
            //服务器地址
            string serverAddress = textBox_ServerAddress.Text;
            serverInfo = serverAddress;

            //匿名登陆
            oPCUAHelper.OpenConnectOfAnonymous(serverAddress);

            //执行连接状态委托
            delConnectStatus(GetConnectStatus);

            //信息提示
            InfoTips();
        }


引用 皆我百晓生 小程序回复内容作答:
根据您提供的代码,有几个地方可能导致连接委托未设置到对象的实例。

首先,请确保在新项目中的communication类的构造函数内初始化delConnectStatus委托,例如:

public communication()
{
    InitializeComponent();
    delConnectStatus = delegate { return true; }; // 初始化委托
}

另外,请确保您在原项目中的代码中没有其他地方对delConnectStatus进行了赋值或修改。如果有,请将其删除或注释掉。

如果上述两个方法都没有解决问题,可能是其他地方出现了问题。可以尝试手动创建一个新的委托实例,并将其赋给delConnectStatus:

delConnectStatus = new GlobalPara.DelConnectStatus(GetConnectStatus);

请确保GetConnectStatus是一个具有相同签名的方法。

希望以上信息对您有帮助!如果还有其他问题,请随时提问。

【以下回答由 GPT 生成】

根据您提供的代码,我们可以看出新项目中的delConnectStatus对象没有被正确初始化,因此在使用该对象时会出现错误。请确保在新项目中添加了适当的代码来设置delConnectStatus对象的实例。

您可以通过以下方式来设置delConnectStatus对象的实例:

delConnectStatus = new GlobalPara.DelConnectStatus(YourMethod);

在上述代码中,将YourMethod替换为您自己定义的连接状态检查方法。

如果您遇到任何问题,请随时向我提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^