Nella specifica C# (17.2) indica che ci sono diversi obiettivi di attributo quando si specifica un attributo. Questo è comune quando è necessario applicare un attributo a qualcosa che spesso non ha un luogo "reale" per specificare un attributo. Ad esempio, l'obiettivo return
viene usato spesso nella piattaforma di Invoke:Qual è lo scopo del metodo attributo-obiettivo?
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SomeWin32Method(); //Assume this is valid, has a DllImport, etc.
Tuttavia ho notato che ci sono altri obiettivi di attributo, come method
:
[method: DllImport("somelib.dll")]
static extern bool SomeWin32Method();
In quali circostanze avrei bisogno di definire esplicitamente il method
attributo obiettivo (dire per risolvere ambiguità), o è solo lì per motivi di completezza?
Inoltre, nell'esempio '[Metodo: SomeAttr] evento pubblico Azione MyFieldLikeEvent,', il 'metodo : 'obiettivo non è ridondante. Significa che l'attributo deve essere applicato su entrambi gli accessor generati automaticamente ('add' e' remove'). L'impostazione predefinita sarebbe applicare l'attributo all'evento stesso. –
Credo tu voglia dire che non è necessario specificare 'internal', che è il modificatore di accesso predefinito per i campi non specificati, ecc. – nicholas