В спецификации C# (17.2) указано, что при указании атрибута существует несколько целевых атрибутов. Это часто встречается, когда вам нужно применить атрибут к чему-то, что нередко имеет «реальное» место для указания атрибута. Например, return
цель часто используется в платформе Invoke:Какова цель атрибута-объекта метода?
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SomeWin32Method(); //Assume this is valid, has a DllImport, etc.
Однако я заметил, что есть и другие цели атрибутов, как method
:
[method: DllImport("somelib.dll")]
static extern bool SomeWin32Method();
При каких обстоятельствах я должен был бы явно определить method
атрибут target (скажем, для устранения двусмысленности), или это просто ради полноты?
Кроме того, в примере, '[метод: SomeAttr] публичное событие действий MyFieldLikeEvent;', в 'метод : 'target не является избыточным. Это означает, что атрибут должен применяться как к автогенерированным аксессуарам ('add', так и' remove'). По умолчанию было бы применить атрибут к самому событию. –
Я полагаю, вы имеете в виду, что вам не нужно указывать 'internal', который является модификатором доступа по умолчанию для неуказанных полей и т. Д. – nicholas