C#文档说您可以为参数分配自定义属性。确切的句子是:“目标元素可以是程序集,类,构造函数,委托,枚举,事件,字段,接口,方法,可移植可执行文件模块,参数,属性,返回值,结构或其他属性。”鉴于此,做这样的事情的正确语法是什么:
private void SomeMethod
([CustomAttribute(Blah = "blah1")] string actualParam,
[CustomAttribute(Blah = "blah2")] DateTime anotherParam
)
{
// method's body
}
或者我完全错过了什么?
答案 0 :(得分:8)
这就像你说的那样。对于参数,您将执行以下操作:
void SomeMethod([MarshalAs(UnmanagedType.FunctionPtr)] Action del);
对于返回值,您可以:
[return: MyAttribute(Param1 = "Value1")]
int Method()
同样,模块和程序集有[module: MyAttribute]
,[assembly: MyAttribute]
。
答案 1 :(得分:2)
没关系,伙计们。它实际上可能与我输入的语法完全相同。属性类只需要具有AttributeTargets.Parameter命名参数。对不起,它发生了:)