我在谷歌搜索时在 Stack Overflow 中找到了这个问题,但它已被删除。所以我再次列出这个问题。
由于我在 BCL 中找不到LcidAttribute
or RetvalAttribute
,我猜 C# 没有提供对语言环境标识符参数和返回值参数的支持。
是这样吗?
谢谢大家。
我在谷歌搜索时在 Stack Overflow 中找到了这个问题,但它已被删除。所以我再次列出这个问题。
由于我在 BCL 中找不到LcidAttribute
or RetvalAttribute
,我猜 C# 没有提供对语言环境标识符参数和返回值参数的支持。
是这样吗?
谢谢大家。
它们与ParameterAttributes 枚举相关联。它在元数据中用于方法的参数,只有编译器可以发出 [modopt]。
我不知道实际执行此操作的编译器。我对背景有一个不错的猜测,这些属性也用于 IDL。这是一种用于 COM 和 RPC 的接口描述语言。拥有此选项可确保 .NET 元数据也可以描述以 IDL 编写并可以出现在类型库中的声明类型。
[lcid] 属性在此处描述。它实际上并没有描述用法,我自己也从未使用过。不知道为什么要使用它。
[retval] 属性在此处描述。在 COM 自动化方法声明中非常重要,它标记了返回方法值的参数。并被 Tlbimp.exe 之类的工具使用,它会重写方法以使该参数成为返回值类型。