Я начинаю изучать ООП-программирование на C#. Что касается дизайна, то мне имеет смысл использовать конструктор 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;
}
}
Вопрос: Верно ли мое предположение об использовании второго кода вместо первого? Или я что-то упускаю? Другими словами: какой из них предпочтительнее (считается лучшим дизайном)? И есть ли что-то фундаментальное в статических конструкторах, что вызовет у меня проблемы в этом случае?
Main
и кодом используйте два отдельных класса, один с точкой входа (Program), а другой с вашей бизнес-логикой. Позже вы можете решить, будет ли этот класс статическим или нестатическим. - person Habib   schedule 29.04.2015Main
, а не в конструкторе? - person Damien_The_Unbeliever   schedule 29.04.2015