c#:(静态)类级变量

CJM*_*CJM 5 c# static declaration

这绝对是一个菜鸟问题,但我的远距离搜索并没有为我解决这个问题.

想要一个特定的控制台应用程序来存储几个类级变量.在一种情况下,我想存储我的日志对象的副本,我将在类中的不同位置使用它.在另一种情况下,我想存储一个简单的类型,实际上是一个int值,它只在内部使用(不需要是属性).

似乎除非我将这些变量指定为静态,否则我不能在Main()及更高版本中使用它们.

我对静态对象的理解是它们的值在对象的所有实例之间共享.在正常操作下,我希望它们只是我应用程序的一个实例,所以这个问题不是问题 - 但它强调了我对相当基本的东西缺乏了解.

在我的日志对象的情况下,我可以看到使其成为静态的情况 - 在多个实例之间共享日志可能是一个好处.但是,情况可能并非如此......在我的int的情况下,我当然不希望在实例之间共享它.

所以...

  • 我误解了这背后的理论吗?
  • 有没有不同的方式我应该声明和使用我的类级变量?
  • 我应该避免使用它们吗?我可以简单地将值作为参数从函数传递到函数,尽管对于没有明显增益的工作似乎没什么用.

编辑:好的,信息很清楚 - 我对静力学的理解基本上是正确的,但问题在于结构和方法.谢谢你的回复.

Jor*_*dão 9

只需将您的应用程序封装在另一个类中,您可以在该Main方法上创建并执行该类:

class MyApp {
  private MyLog lol = new MyLog(); 
  private int myInt = 0;

  public void Execute() {
    // ...
  }
}

class Program {
  public static void Main() {
    new MyApp().Execute();
  }
}
Run Code Online (Sandbox Code Playgroud)

如果需要,您仍然可以将日志字段设置为静态.