Подобный удобный для затмения gdb frontend является emacs frontend, плотно связанный с emacs IDE. Если Вы уже будете работать с emacs, Вам понравится он:
Раздел 7.4.3 C # 3. Спецификация 0 является здесь соответствующим битом. В основном массив параметров расширен, поэтому вы сравниваете:
public static void DoSomething<T>(T item)
и
public static void DoSomething<T>(IEnumerable<T> item)
T
для первого совпадения выводится как List
и ] T
для второго совпадения предполагается как строка
.
Теперь рассмотрим преобразования, используемые для аргумента в тип параметра - в первом случае это List
в Список <строка>
; во втором - от List
до IEnumerable
. Первое преобразование лучше второго по правилам, приведенным в п. 7.4.3.4.
Противоинтуитивным битом является вывод типа. Если вы уберете это из уравнения, оно будет работать так, как вы ожидаете:
var items = new List<string> { "foo", "bar" };
DoSomething<string>(items);
DoSomething<string>("foo", "bar");
В этот момент есть '