将属性添加到C#属性集参数

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)没有自定义属性.任何人都可以向我解释为什么会这样?

Jor*_*dão 8

你需要使用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)