Редактирование: для разъяснения существует безумный пограничный случай , где можно добраться null
из конструктора класса, но откровенно я не думаю, что любой реальный код должен когда-либо , ожидают иметь дело с этим уровнем сумасшедших: What' s самый странный угловой случай you' ve замечен в C# или.NET? . Ко всему нормальный намерения: этого не произойдет.
нет, Вы не можете стать пустыми от конструктор класса (Thread
, класс). Единственный случай, который я знаю того, где конструктор может (кажутся) возврат null
Nullable
- т.е.
object foo = new int?(); // this is null
Это - немного большая проблема с дженериками:
static void Oops() where T : new() {
T t = new T();
if (t == null) throw new InvalidOperationException();
}
static void Main() {
Oops();
}
(конечно, существуют способы проверить/обработать, что сценарий, такой как : class
)
Кроме этого, конструктор будет всегда или возвращать объект (или инициализировать структуру), или выдайте исключение.
На предыдущей работе у нас был проект в SVN под названием Area51, в котором люди писали тестовый код. Правила были
В команде из трех человек это сработало нормально. Мы могли поместить туда код «что, если», и его было легко запустить через ide или командную строку
Когда я это делаю, они обычно относятся к проекту, поэтому они помещаются в подкаталог проекта (в моем случае обычно называемый «Investigations»). Это проверяется системой контроля версий вместе со всем остальным.
Результаты (где необходимо) попадают в тот же подкаталог «Investigations», что и код, использованный для получения результатов.
У меня есть папка, которую я называю OneOffCode
Это папка просто код, который я написал, либо изучаю новую технологию, пытаясь доказать концепцию, и т. д. . Это непроизводственный код.
Я обычно создаю резервную копию на промежуточном диске и перемещаю его с собой от работы к работе или с компьютера на компьютер.
Обычно я переключаюсь с C # на C ++. Итак, у меня есть тестовое консольное приложение для C # и C ++ в месте «песочницы» под контролем версий. Оба консольных приложения настраиваются одинаково, когда есть Main, который вызывает тест, который я пытаюсь сделать в то время. Когда я закончу, я сохраняю старые методы и комментарии и просто очищаю Main, когда наступает следующий тест.
Я не знаю, лучший ли он, но после его настройки это довольно быстро войти, получить ответы, выйти и сохранить все на следующий раз.