Как изменить начальную точку программы C # на другой метод? [Дубликат]

Если мы рассмотрим общие сценарии, в которых может быть выбрано это исключение, доступ к свойствам с объектом вверху.

Пример:

string postalcode=Customer.Address.PostalCode; 
//if customer or address is null , this will through exeption

здесь, если адрес имеет значение null, то вы получите NullReferenceException.

Итак, в качестве практики мы всегда должны использовать проверку нуля, прежде чем обращаться к свойствам в таких объектах (особенно в общих)

string postalcode=Customer?.Address?.PostalCode;
//if customer or address is null , this will return null, without through a exception
17
задан Sandeep 10 May 2011 в 19:09
поделиться

4 ответа

Да, это должно быть Main. Это статично, потому что в противном случае CLR нужно будет беспокоиться о создании экземпляра типа, что означает, что вы, вероятно, должны иметь конструктор без параметров, даже если вы не хотели экземпляр типа и т. д. Почему вы хотите заставить его быть методом экземпляра?

17
ответ дан Jon Skeet 4 September 2018 в 07:46
поделиться

Да для приложения ac #, Main() должна быть точкой входа.

Причина в том, что разработчики этого языка решили, что искать в качестве точки входа для вашей программы , Они могли бы использовать совершенно другой подход, чтобы найти точку входа, например. использование метаданных или создание экземпляра объекта для вас (для чего потребуется конструктор без параметров). Другая причина для его именования void main() заключается в том, что он интуитивно понятен для пользователей, поступающих с других языков.

10
ответ дан Chris Kooken 4 September 2018 в 07:46
поделиться

Static Void Main () - это необходимая точка входа для любого исполняемого файла (.EXE), который будет создан на C #. Библиотека (или .DLL) может иметь другие точки входа.

Метод является Static, потому что это необходимо для доступа к методу без экземпляра объекта для адресации. Чтобы вызвать метод (отправную точку) извне приложения, требуется статический метод.

4
ответ дан Cos Callis 4 September 2018 в 07:46
поделиться

Фактическая требуемая точка входа:

static void Main(string[] args); // note capitalization and arguments

Причина, по которой Main должна быть статичной, заключается в том, что нестатические объекты должны быть сконструированы, прежде чем вы вызовете на них какие-либо методы. Поскольку Main является точкой входа в программу, кто будет называть ее конструктором?

(Да, вы могли бы иметь CLR, чтобы класс с Main содержал конструктор без параметров без параметров и CLR вызывает этот конструктор во время глобального запуска. Но это дополнительная работа, и на практике проще просто потребовать, чтобы Main был статичным.)

1
ответ дан JSBձոգչ 4 September 2018 в 07:46
поделиться