在 C# 规范 (17.2) 中,它表示在指定属性时有多个属性目标。当您需要将属性应用于通常没有“真实”位置来指定属性的事物时,这很常见。例如,return
平台Invoke中经常使用目标:
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SomeWin32Method(); //Assume this is valid, has a DllImport, etc.
但是我注意到还有其他属性目标,例如method
:
[method: DllImport("somelib.dll")]
static extern bool SomeWin32Method();
在什么情况下我需要明确定义method
属性目标(比如解决歧义),还是为了完整性而存在?