PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C# Frage: Was bewirkt folgender Ausdruck?


minos5000
2008-08-07, 15:04:58
Hi,

ich kämpfe mich gerade durch etwas C# Code und bin dabei auf ein Konstrukt gestoßen, das mir bisher noch nicht untergekommen ist und da ich auch nicht weiß wie die Bezeichnung dafür lautet blieben meine bisherigen Versuche, den Zweck herauszufinden leider erfolglos.

Hier ein Beispiel aus dem Code mit dem ich mich beschäftige:


[EditorBrowsable(EditorBrowsableState.Always), Browsable(true),
DefaultValue(false), Category("Skin"),
Description("Thumb Bottom Graphic")]
public Image ThumbBottomImage {
get { return moThumbBottomImage; }
set { moThumbBottomImage = value; }
}


Der Ausdruck in Fettschrift ist derjenige, der mir Rätsel aufgibt.


vg
minos

lizardking
2008-08-07, 15:12:36
Erklärung im MSDN (http://msdn.microsoft.com/en-us/library/system.componentmodel.editorbrowsableattribute.aspx)

EditorBrowsableAttribute is a hint to a designer indicating whether a property or method is to be displayed. You can use this type in a visual designer or text editor to determine what is visible to the user. For example, the IntelliSense engine in Visual Studio uses this attribute to determine whether to show a property or method.

minos5000
2008-08-07, 15:16:11
merci

Monger
2008-08-07, 15:21:15
Das sind Attribute.

Attribute können u.a. vor Klassen und Methoden angehängt werden, und über Reflections ausgewertet werden.

Das ist noch eine relativ frische Technologie, und markiert irgendwo den nächsten logischen Schritt nach den objektorientierten Sprachen (nämlich den Aspekt-orientierten Sprachen).

Hintergrund ist: Methoden sind ja erstmal völlig kontextfrei. Von wem und von was sie aufgerufen wurden, wissen sie nicht. Heutige OOP Sprachen berücksichtigen zwar, dass Objekte intern komplexe Verhaltensweisen haben können, aber nicht die Beziehungen zwischen Objekten.

Attribute sind da der erste Schritt hin dazu: wer auch immer diese Methode aufruft, kann vorher die Attribute analysieren und auswerten.

Bisher werden Attribute in aller Regel sehr spärlich genutzt, und eher zur Unterstützung für die Entwicklungsumgebung. [Obsolete("Bitte nicht mehr verwenden!")] markiert z.B. diese Methode als überholt, und dies wird dann im Visual Studio auch entsprechend beim Compile berücksichtigt. [STAThread()] sagt der Runtime, wie sie diese Methode starten soll.


Ich muss zugeben: ich hatte bisher noch keinen Bedarf am Programmieren mit Attributen, und dir wird es vermutlich auch so gehen! ;)
Ist alles noch eine ziemlich frische Entwicklung, markiert aber wie gesagt den nächsten Entwicklungsschritt in den Programmiersprachen.