我开始用 C# 学习 OOP 编程。static
关于设计,考虑到这个类包含只能运行一次的代码(我的整个程序非常简单,只包含一个 .cs 文件),对我来说,为我的程序的主类使用构造函数是有意义的。
例如,这是一个使用普通构造函数的示例代码:
class Program
{
const string file = @"C:\Program Files (x86)\myapp\log.txt";
int status;
static int Main(string[] args)
{
var myObj = new Program();
return myObj.status;
}
public Program()
{
int retCode;
try {
// lots of procedures using the file
retCode = 0; // ok
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
retCode = 999; // specific error
}
status = retCode;
}
}
这里遵循相同的结构,但使用static
构造函数,因为我认为它已经足够了。通知status
访问也发生了变化。
class Program
{
const string file = @"C:\Program Files (x86)\myapp\log.txt";
static int status;
static int Main(string[] args)
{
return Program.status;
}
static Program()
{
int retCode;
try {
// lots of procedures using the file
retCode = 0;
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
retCode = 999;
}
status = retCode;
}
}
问题:我的假设是否正确,使用第二个代码而不是第一个代码?还是我错过了什么?换句话说:哪一个更可取(被认为是更好的设计)?在这种情况下,静态构造函数是否有一些基本的东西会给我带来麻烦?