tlg*_*tlg 7 c# attributes properties
现在,没有使用属性,我有这个:
public void SetNumber([Array(new int[]{8})] Byte[] number)
Run Code Online (Sandbox Code Playgroud)
如您所见,我将该ArrayAttribute
属性添加到参数中.
我想要做的是相同的,但在属性设置器上.这不起作用:
[Array(new int[]{8})]
public Byte[] SetNumber
{
set
{
}
get
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将属性附加到set_SetNumber
value
方法参数?
另外,一个相关的问题.生成的两个方法(get/set)没有自定义属性.任何人都可以向我解释为什么会这样?
你需要使用param
属性的目标上set
:
public Byte[] SetNumber {
[param: Array(new int[] { 8 })]
set {
}
get {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
至于第二个问题,自定义属性是在属性本身上设置的,而不是在属性访问器方法上设置的.
此外,如果您ArrayAttribute
只使用参数,可以像这样定义:
[AttributeUsage(AttributeTargets.Parameter)]
public class ArrayAttribute : Attribute {
// ...
}
Run Code Online (Sandbox Code Playgroud)