Как улучшить прицеливание противника, когда игрок стоит на месте, а все остальное движется?

Есть ли философская причина, почему конструктор не может поддерживать вывод типа?

No. Когда у вас есть

new Foo(bar)

, мы могли бы идентифицировать все типы, называемые Foo в области видимости, независимо от общей арности, а затем делать разрешение перегрузки на каждом, используя модифицированный алгоритм вывода типа метода. Мы должны были бы создать алгоритм «блеск», который определяет, какой из двух применимых конструкторов в двух типах, имеющих одно и то же имя, но различные общие атрибуты - лучший конструктор. Чтобы поддерживать обратную совместимость, ctor на не-общий тип должен всегда выигрывать.

Есть ли практическая причина, почему конструктор не может поддерживать вывод типа?

Да. Даже если преимущество функции перевешивает свои издержки - что немаловажно - этого недостаточно для реализации функции. Мало того, что эта функция должна быть чистой победой, она должна быть большой чистой победой по сравнению со всеми другими возможными функциями, в которые мы могли бы инвестировать. Это также должно быть лучше, чем тратить время и усилия по исправлению ошибок, работе с производительностью и другим возможным областям, которые мы могли бы приложить к этим усилиям. И в идеале он должен хорошо вписываться в то, что «тема» относится к выпуску.

Кроме того, как вы правильно заметили, вы можете получить преимущества этой функции, не имея собственно самой функции, используя заводской шаблон. Существование простых обходных решений делает менее вероятным, что функция будет реализована.

Эта функция уже давно находится в списке возможных функций.

UPDATE March 2015

Предлагаемая функция сделала ее достаточно близкой к вершине списка для C # 6, чтобы быть задан и спроектирован, но затем был разрезан.

0
задан StuckInPhD 23 February 2019 в 20:28
поделиться