Я полагаю, что некоторая литература не точна (возможно, даже содержит ошибки) или это моя вина? Книга, которую я сейчас читаю, говорит (перевод):
Чтобы создать значение ссылочного типа, необходимо использовать новое ключевое слово.
Я так не думаю - а как же делегаты? Я прав или я плохо понимаю этот текст?
Ну, это не всегда будет правдой, нет.Некоторые примеры:
Другие примеры, где new не появитсяВаш исходный код будет содержать пользовательские операторы и преобразования.
new
Делегаты также неявно создаются с новым ключевым словом. За кулисами компилятор генерирует необходимый код для вас. Итак
MyEvent += SomeMethod;
становится
MyEvent += new EventHandler(someInstance, SomeMethod);
но это правда, не каждый раз, когда создается ссылочный тип, нужен оператор new. как бокс.
Делегаты - это ссылки на функцию, и, как вы, вероятно, знаете, вы не используете ключевое слово "new" при объявлении функции.
, но вы используете его при объявлении объекта, например:
MyObject obj = new MyObject();