这绝对是一个有点菜鸟的问题,但到目前为止我的搜索还没有为我解决这个问题。
A 想要一个特定的控制台应用程序来存储多个类级变量。在一种情况下,我想存储我的日志记录对象的副本,我将在类里面的各个地方使用它。在另一种情况下,我想存储一个简单类型,实际上是一个 int 值,它只会在内部使用(不需要是属性)。
看来,除非我将这些变量指定为静态变量,否则我不能在 Main() 及以后使用它们。
我对静态对象的理解是它们的值在对象的所有实例之间共享。在正常操作下,我希望它们只是我的应用程序的一个实例,所以这个问题不是问题 - 但它突出了我对相当基本的事情缺乏理解。
就我的日志记录对象而言,我可以看到将其设为静态的情况 - 在多个实例之间共享日志可能是一个好处。然而,情况可能并非如此……就我的 int 而言,我当然不希望跨实例共享它。
所以...
- 我是不是误解了这背后的理论?
- 我应该以不同的方式声明和使用我的类级变量吗?
- 我应该避免使用它们吗?我可以简单地将值作为参数从一个函数传递到另一个函数,尽管这似乎没有什么明显的收获。
编辑:好的,信息很明确——我对静力学的理解基本上是正确的,但问题是结构和方法之一。感谢您的回复。
最佳答案
只需将您的应用程序封装在另一个类中,您可以在 Main
方法上创建和执行该类:
class MyApp {
private MyLog lol = new MyLog();
private int myInt = 0;
public void Execute() {
// ...
}
}
class Program {
public static void Main() {
new MyApp().Execute();
}
}
如果需要,您仍然可以将日志字段设置为静态。
关于c#:(静态)类级变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3839493/