是否有“ get:”属性目标?

时间:2019-03-26 14:27:31

标签: c# attributes

在Microsoft文档中,我注意到the following example

[get: System.Security.SecurityCritical]
public virtual System.Windows.Media.Imaging.BitmapSource Thumbnail { get; }

请注意,目标“ get:”已应用于该属性。

但是在他们的C# documentation中,没有这样的目标。他们只列出:

assembly, module, field, event, method, param, property, return, type

在这两个页面上我都看不到任何特定于版本的内容。


此外,C# language specification也不包含get:(第395页)。


我还是在VS 2015的示例中尝试使用它,并且IDE报告了错误:

  

“获取”不是公认的属性位置。有效属性   此声明的位置为“属性”。此中的所有属性   块将被忽略。

get:在某些情况下有效吗?他们的文档有误吗?


仅供参考,if not impossible很难在SO上搜索字符串“ get:”。我希望已经找到了答案,但这很难做到。

1 个答案:

答案 0 :(得分:1)

我找不到与get:目标有关的任何内容,但是可以仅在属性的get部分或在setget的不同属性上应用属性。请参见下面的示例

[AttributeUsage(AttributeTargets.Method)]
public class MyAttributeAttribute : Attribute
{
    private readonly string name;

    public MyAttributeAttribute(string name)
    {
        this.name = name;
    }
}

public class Test
{
    public int Value
    {
        [MyAttribute("Get")]get;
        [MyAttribute("Set")]set;
    }
}

编辑:
dotPeek反编译器还向我显示了Thumbnail属性,例如

public virtual BitmapSource Thumbnail
{
  [SecurityCritical] get
  {

所以看来get:目标不存在