gpt4 book ai didi

c# - 特殊名称属性还允许使用哪些巧妙的技巧?

转载 作者:太空狗 更新时间:2023-10-29 18:27:23 25 4
gpt4 key购买 nike

研究中a question在实现 Visual Basic Power (^) 运算符时,我了解到 System.Runtime.CompilerServices.SpecialNameAttribute类允许在 C# 中实现此运算符以在 VB 中使用。

有趣的是,documentation状态:

The SpecialNameAttribute class is not currently used in the .NET Framework, but is reserved for future use.

我的问题是:使用此属性时还有哪些巧妙的技巧可用?

(附带问题 - 文档是否不准确,或者这是一个语义问题,因为该属性显然由 编译器 而不是 框架 使用?)

最佳答案

从该代码查看生成的 IL 时,您可以看出,编译器使用该属性在方法声明中打开 specialname IL 属性。寻找其用途的最佳地点是 ECMA 335 CLI 规范。

一般来说,它用于标记标识符具有特殊用途。您会看到它在例如属性的 getter 和 setter 方法、事件访问器方法和运算符重载上打开。请注意与 rtspecialname IL 属性的区别,specialname 属性影响工具而不是抖动。就像本例中的 VB.NET 编译器一样,它现在将 op_Exponent() 区分为运算符重载,而不仅仅是具有有趣名称的普通方法。

请注意,这都是内置行为,您不能采用编译器和抖动未编程识别的技巧。

关于c# - 特殊名称属性还允许使用哪些巧妙的技巧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com