Метод с необязательными параметрами нормально проверяется в редакторе, но (иногда) завершается сбоем во время компиляцииC#

Место общения программистов C#
Anonymous
Метод с необязательными параметрами нормально проверяется в редакторе, но (иногда) завершается сбоем во время компиляции

Сообщение Anonymous »

У меня возникла проблема при компиляции этой строки кода:

Код: Выделить всё

var span = m_tracer.StartActiveSpan("FileTrace");
Что странно, эта точно такая же строка кода прекрасно компилируется в других проектах и ​​других решениях. (На самом деле, это ТОЧНО одна и та же строка кода, поскольку исходный файл, содержащий этот код, связан между несколькими разными проектами в разных решениях.)
Ошибка сборки, которая появляется только в вывод:

Код: Выделить всё

error CS1501: No overload for method 'StartActiveSpan' takes 1 arguments
Вот список ошибок; ошибок нет!
Изображение

А вот что странного в этом вызове метода. Это правда, что на двоичном уровне не существует перегрузки для этого метода, который принимает 1 аргумент. Однако все аргументы, кроме первого, являются необязательными, поэтому на уровне источника это допустимый вызов метода!
Изображение

На самом деле, если я удалю этот единственный параметр IntelliSense помечает синтаксис как недействительный.
Изображение

Если я верну параметр обратно, красная волнистая линия исчезнет. В общем, редактор доволен синтаксисом, но на этапе компиляции что-то идет не так. (Хотя, как упоминалось выше, эта строка кода прекрасно компилируется в других контекстах проектов и решений.)
Кто-нибудь когда-нибудь видел это и устранял первопричину? Спасибо за совет!

Подробнее здесь: https://stackoverflow.com/questions/785 ... etimes-fai

Вернуться в «C#»