In der C# -Spezifikation (17.2) gibt es an, dass es mehrere Attributziele gibt, wenn ein Attribut spezifiziert wird. Dies ist üblich, wenn Sie ein Attribut auf etwas anwenden müssen, das nicht oft einen "echten" Platz zum Spezifizieren eines Attributs hat. Zum Beispiel wird das return
Ziel oft in Plattform Invoke verwendet:Was ist der Zweck der Methode attribute-target?
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SomeWin32Method(); //Assume this is valid, has a DllImport, etc.
Jedoch habe ich bemerkt, dass es andere Attribute Ziele, wie method
:
[method: DllImport("somelib.dll")]
static extern bool SomeWin32Method();
Unter welchen Umständen würde ich das explizit definieren muß method
Attribut Ziel (sagen, um Mehrdeutigkeit aufzulösen), oder ist es nur der Vollständigkeit halber da?
Auch im Beispiel '[Methode: SomeAttr] public Ereignis Aktion MyFieldLikeEvent;', die 'Methode : 'Ziel ist nicht redundant. Dies bedeutet, dass das Attribut auf beide automatisch generierten Zugriffsmethoden angewendet wird ('add' und' remove'). Der Standardwert wäre, das Attribut auf das Ereignis selbst anzuwenden. –
Ich glaube, Sie meinen, Sie müssen nicht "internal" angeben, das ist der Standard-Zugriffsmodifizierer für nicht näher spezifizierte Felder usw. – nicholas