Использование статического метода void Main () из базового класса в качестве точки входа в программу
Я хотел бы абстрагировать некоторую программную логику в базовый класс для выполнения программы из командной строки (функциональность аналогичнаэтот вопрос задавался).
другими словами, что-то вроде этого:
public abstract class BaseProgram<T>
{
public static void Main(string[] args)
{
Console.WriteLine(typeof(T));
}
}
public class Program : BaseProgram<string>
{
}
Важно отметить, что BaseProgram находится в другой сборке.
Это, однако, не работает.static void Main(string[] args)
методдолжен быть в производном классе. Кто-нибудь может объяснить, почему это так? В конце концов, следующее абсолютно «законно»:
Program.Main(null);
BaseProgram<string>.Main(null);
и выведет:
> System.String
> System.String
Что бы я хотел знать: есть ли документированные причины для такого результата?