在单独的函数中调用计时器回调时,可能会遇到错误“An object访问非静态字段、方法或属性需要引用...”在静态方法或静态方法中访问非静态类成员时会出现这种情况
要解决此问题,有两个选项:
将回调和成员变量声明为静态:
public static void Main (string[] args) { Timer _timer = null; static TimeSpan _millisecs; ... }
创建实例类的:
MainClass instance = new MainClass(); btn.Clicked += instance.StartClick; btn_stop.Clicked += instance.StopClick;
这些选项之间的选择取决于应用程序的要求。如果首选全局状态管理,则可以使用静态成员。或者,创建实例可以提供更好的可测试性和封装性。
了解错误消息的原因有助于做出明智的决策。发生错误的原因是非静态成员需要访问对象实例,而静态成员则不需要。
以上是如何解决在 C# 中访问非静态成员时出现'需要对象引用”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!