C# で OOP プログラミングを学び始めています。設計に関しては、プログラムのメイン クラスにコンストラクターを使用することは理にかなっています。static
このクラスには 1 回だけ実行されるコードが含まれていることを考えると (私のプログラム全体は非常に単純で、単一の .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;
}
}
質問:最初のコードの代わりに 2 番目のコードを使用するという私の仮定は正しいですか? または、何か不足していますか?言い換えれば、どちらが好ましいですか(より良いデザインと見なされます)?そして、この場合に問題を引き起こす静的コンストラクターに基本的なものはありますか?