首页 > 后端开发 > C++ > 如何解决在 C# 中访问非静态成员时出现'需要对象引用”错误?

如何解决在 C# 中访问非静态成员时出现'需要对象引用”错误?

Barbara Streisand
发布: 2024-12-29 12:00:21
原创
675 人浏览过

How to Resolve

解决非静态成员访问的“需要对象引用”错误

在单独的函数中调用计时器回调时,可能会遇到错误“An object访问非静态字段、方法或属性需要引用...”在静态方法或静态方法中访问非静态类成员时会出现这种情况

要解决此问题,有两个选项:

  1. 将回调和成员变量声明为静态:

    • 将定时器回调和成员变量设为静态,如下在:
    public static void Main (string[] args)
    {
        Timer _timer = null;
        static TimeSpan _millisecs;
        ...
    }
    登录后复制
    • 这允许在没有对象实例的情况下访问成员变量和回调。
  2. 创建实例类的:

    • 实例化包含非静态成员的类的对象:
    MainClass instance = new MainClass();
    btn.Clicked += instance.StartClick;
    btn_stop.Clicked += instance.StopClick;
    登录后复制
    • 回调现在可以通过实例对象访问非静态成员。

这些选项之间的选择取决于应用程序的要求。如果首选全局状态管理,则可以使用静态成员。或者,创建实例可以提供更好的可测试性和封装性。

了解错误消息的原因有助于做出明智的决策。发生错误的原因是非静态成员需要访问对象实例,而静态成员则不需要。

以上是如何解决在 C# 中访问非静态成员时出现'需要对象引用”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板