Есть ли какой-либо #pragma или подобная директива для сгенерированного кода C# для соответствия номерам строки кода шаблона к номеру строки C#?

Ваш вопрос немного неопределенен, но я предполагаю UPSERT , мог считаться шаблоном разработки. Для языков, которые не реализуют MERGE, много альтернатив для решения проблемы (если подходящие строки существует, UPDATE; еще INSERT), существуют.

8
задан Lasse V. Karlsen 31 August 2009 в 17:34
поделиться

1 ответ

У вас есть # строка директива препроцессора .

#line позволяет вам изменять номер строки компилятора и (необязательно) вывод имени файла для ошибок и предупреждений.

Можно использовать директиву #line на автоматизированном промежуточном этапе процесса сборки. Например, если строки были удалены из исходного файла исходного кода, но вы по-прежнему хотели, чтобы компилятор генерировал вывод на основе исходной нумерации строк в файле, вы можете удалить строки, а затем имитировать исходную нумерацию строк с помощью #line .

Директива #line hidden скрывает следующие друг за другом строки от отладчика, так что, когда разработчик выполняет код, любые строки между #line hidden и следующей Директива #line (при условии, что это не другая скрытая директива #line) будет перешагнуть. Этот параметр также можно использовать, чтобы позволить ASP.NET различать определяемый пользователем и созданный машиной код. Хотя ASP.NET является основным потребителем этой функции, вполне вероятно, что ее будут использовать другие генераторы исходного кода.

Директива #line hidden не влияет на имена файлов или номера строк в сообщениях об ошибках. То есть, если ошибка обнаружена в скрытом блоке, компилятор сообщит текущее имя файла и номер строки ошибки.

Директива #line filename указывает имя файла, который вы хотите отобразить в выводе компилятора. По умолчанию используется фактическое имя файла исходного кода. Имя файла должно быть заключено в двойные кавычки ("") и ему должен предшествовать номер строки.

16
ответ дан 5 December 2019 в 10:43
поделиться
Другие вопросы по тегам:

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