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

Dav*_*Caz 6 c# attributes

在Microsoft的文档中,我注意到以下示例

[get: System.Security.SecurityCritical]
public virtual System.Windows.Media.Imaging.BitmapSource Thumbnail { get; }
Run Code Online (Sandbox Code Playgroud)

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

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

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

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


此外,C#语言规范也不包含get:任何一个(第395页)。


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

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

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


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

Dav*_*Caz 0

正如@nineberry 所指出的,问题中显示的文档中的示例与 .NET Framework 的实际代码不同。问题有:

[get: System.Security.SecurityCritical]
public virtual System.Windows.Media.Imaging.BitmapSource Thumbnail { get; }
Run Code Online (Sandbox Code Playgroud)

实际的代码是:

public virtual BitmapSource Thumbnail
        {
            [SecurityCritical ]
            get
            {
                ...
Run Code Online (Sandbox Code Playgroud)

还有人认为这可能是文档自动生成方式中的一个缺陷。我不知道这些文档是如何维护的,但它们已经被修改了。

截至今天,文档显示的是

public virtual System.Windows.Media.Imaging.BitmapSource Thumbnail 
{ [System.Security.SecurityCritical] get; }
Run Code Online (Sandbox Code Playgroud)

这与代码一致并且不使用临时get:目标。

这似乎非常令人信服,没有(也从来没有)这样的目标。