1

试图理解 c# 控制台应用程序,静态让我抓狂。

在我的应用程序中:

static void Main(string[] args) {TimerCallback callback...}
static void Tick(Object state) { !here the problem! }
class myclass { all app logic }

问题是,在 Tick 方法中我需要使用 myclass 的实例,但我无法创建新实例,例如:

 myclass mc = new myclass();
 static void Tick(){}...

“非静态字段、方法或属性需要对象引用”。如果我将 myclass 放在 Tick 中,它会起作用,但计时器将始终创建 myclass 的新实例,并且类中的所有数据都会消失。

PS对不起我的英语。

4

1 回答 1

3

你可能想要这样的东西:

static MyClass myClass;
static void Main(string[] args) { myClass = new MyClass(); TimerCallback callback... }
static void Tick(Object state) { myClass.DoSomething(); }
class MyClass { all app logic }

也就是说,创建一个包含 的实例的静态字段MyClass,并在您的静态方法中使用它。

于 2013-05-21T16:52:03.860 回答