Существует ли цель атрибута get:? - PullRequest
6 голосов
/ 26 марта 2019

В документах Microsoft я заметил следующий пример :

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

Обратите внимание, что к атрибуту применяется цель "get:".

Однако вих C # документация такой цели нет .Они только перечисляют:

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

Я не вижу ничего специфичного для версии ни на одной из этих страниц.


Кроме того, C #языковая спецификация также не включает get: (стр. 395).


Я попытался использовать его в любом случае в образце в VS 2015, и среда IDE сообщила об ошибке:

'get' не является распознанным местоположением атрибута.Допустимые местоположения атрибутов для этой декларации - это свойство.Все атрибуты в этом блоке будут игнорироваться.

Является ли get: действительным в некоторых обстоятельствах?Это ошибка в их документации?


К вашему сведению , если не невозможно , очень трудно найти строку "get:" в SO.Я ожидал найти ответ на этот вопрос уже, но это сделало его довольно трудным.

1 Ответ

1 голос
/ 26 марта 2019

Я не могу найти ничего о get: target, но можно применить атрибут только к get части свойства или другим атрибутам на set и get.Пожалуйста, смотрите пример ниже

[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: не существует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...