5

我在谷歌搜索时在 Stack Overflow 中找到了这个问题,但它已被删除。所以我再次列出这个问题。

由于我在 BCL 中找不到LcidAttributeor RetvalAttribute,我猜 C# 没有提供对语言环境标识符参数和返回值参数的支持。

是这样吗?

谢谢大家。

4

1 回答 1

5

它们与ParameterAttributes 枚举相关联。它在元数据中用于方法的参数,只有编译器可以发出 [modopt]。

我不知道实际执行此操作的编译器。我对背景有一个不错的猜测,这些属性也用于 IDL。这是一种用于 COM 和 RPC 的接口描述语言。拥有此选项可确保 .NET 元数据也可以描述以 IDL 编写并可以出现在类型库中的声明类型。

[lcid] 属性在此处描述。它实际上并没有描述用法,我自己也从未使用过。不知道为什么要使用它。

[retval] 属性在此处描述。在 COM 自动化方法声明中非常重要,它标记了返回方法值的参数。并被 Tlbimp.exe 之类的工具使用,它会重写方法以使该参数成为返回值类型。

于 2012-07-31T09:33:01.197 回答