Почему ковариация / контравариантность C # 4.0 ограничена параметризованным интерфейсом и типами делегатов?

Имена заголовков не чувствительны к регистру.

Из RFC 2616 - «Протокол передачи гипертекста - HTTP / 1.1» , Раздел 4.2, «Заголовки сообщений» :

Каждое поле заголовка состоит из имени, за которым следует двоеточие (":") и значение поля. Имена полей нечувствительны к регистру.

blockquote>

Обновление RFC 7230 не содержит никаких изменений из RFC 2616 в этой части.

11
задан soc 4 August 2010 в 17:10
поделиться

3 ответа

Простой ответ: это ограничение CLR.

нигде не встречал хорошего, конкретного объяснения этому ... Я не помню, чтобы видел одно в серии блогов Эрика об этом, хотя, возможно, я его где-то пропустил).

Я хотел бы сказать, что и делегаты, и интерфейсы уже образуют «уровни косвенности» над реальными типами; взгляды на методы или классы, если хотите. Переход от одной точки зрения к другой вполне оправдан. Фактический класс мне кажется более конкретным, и переход от одного конкретного представления к другому кажется менее разумным. Это скорее болезненное объяснение, чем настоящее техническое ограничение.

5
ответ дан 3 December 2019 в 08:02
поделиться

Вы захотите прочитать сообщение Эрика Липперта о том, почему это работает именно так. Суть в том, что они допускали как можно большую вариативность, не позволяя разработчикам совершать серьезные ошибки в программировании, которые могли вызвать трудности с отслеживанием ошибок. Величина отклонений в 4.0 значительно расширена по сравнению с правилами 3.0, и, насколько я понимаю, это был баланс между тем, что полезно для разработчика, и тем, что можно допустить, не вызывая слишком сильной головной боли из-за непреднамеренных ошибок.

http://blogs.msdn.com/b/ericlippert/archive/tags/covariance+and+contravariance/default.aspx

8
ответ дан 3 December 2019 в 08:02
поделиться

Это ограничение CLR. Дополнительный комментарий см. в Почему C# (4.0) не допускает ко- и контравариантность в общих типах классов?.

2
ответ дан 3 December 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: