Когда ParameterInfo.IsLcid или ParameterInfo.IsRetval имеют значение true?
Я нахожу этот вопрос в Переполнении стека при поиске в Google, но он был удален. Поэтому я снова перечисляю этот вопрос.
Как я не могу найти LcidAttribute
или же RetvalAttribute
в BCL, я думаю, C# не предоставил поддержку параметра идентификатора локали и параметра возвращаемого значения.
Это оно?
Спасибо всем.
1 ответ
Они связаны с перечислением ParameterAttributes. Который используется в метаданных для параметра метода, только компилятор может выдавать [modopt].
Я не знаю компилятор, который на самом деле это делает. Я имею приличное предположение на фоне, хотя, эти атрибуты также используются в IDL. Какой язык описания интерфейса используется в COM и RPC. Наличие этой опции гарантирует, что метаданные.NET могут также описывать тип объявлений, которые написаны в IDL и могут появляться в библиотеках типов.
Атрибут [lcid] описан здесь. Это на самом деле не описывает использование, и я никогда не использовал его сам. Понятия не имею, зачем вам это использовать.
Атрибут [retval] описан здесь. Очень важно в объявлениях метода автоматизации COM, он отмечает параметр, который возвращает значение метода. И используемый таким инструментом, как Tlbimp.exe, он переписывает метод, чтобы сделать этот параметр типом возвращаемого значения.