wenn ich mir fremde Listings ansehe, dann verstehe ich manchmal nicht, was es bedeutet, wenn z.B. eine Zeile vor einer Methode eine oder mehrere Klassen oder Dateien innerhalb zweier eckiger Klammern stehen.
Kann innerhalb des folgenden Codes ansonsten nicht auf bestimmte Inhalte zugegriffen werden?
Beispiel:
[Serializable()]
[System.Diagnostics.DebuggerStepThrough()]
public class AuthorsDataSet : DataSet
{
…
Ist z.B. System.Diagnostics nicht ein Namespace und kann darauf in C# nicht durch „using“ zugegriffen werden?
vielen Dank für die Antwort, da hat sich ein ganz neues Feld für mich aufgetan, aber ich habe immer noch Probleme, mir klarzumachen, was es mit solchen Attributen auf sich hat. Die Möglichket, komplette Objekte zu serialisieren, ist neu für mich und stellt, wie ich das jetzt verstehe, eine ganz einfache Möglichkeit bereit, Daten abzuspeichern, anstatt die einzelnen Variablen „per Hand“ in eine Datei zu schreiben. Und eine (z.B.) Klasse, die man so sichern will, muss also zuvor das entsprechende Attribut bekommen. Aha…
Aber zum Beispiel können Attribute doch auch Verweise zu Win32-dll-Dateien sein, auf die ich in der Methode zugreifen kann. Irgendwie kriege ich diese breiten Möglichkeiten, die Attribute beherbergen, noch nicht unter einen Hut…
Wozu müsste zum Beispiel solch eine dll-Datei zur Benutzung in der Methode als Attribut zur Verfügung gestellt werden?
Viele Grüße
Alexander
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
einfache Möglichkeit bereit, Daten abzuspeichern, anstatt die
einzelnen Variablen „per Hand“ in eine Datei zu schreiben. Und
eine (z.B.) Klasse, die man so sichern will, muss also zuvor
das entsprechende Attribut bekommen. Aha…
Vorsicht ist dabei geboten! Diese glorreiche Idee hatte ich auch bereits. Folgendes szenario
Objekt vom Typ MyClass(Version 1.0) wird serialisiert in die Datei MyStore.xml (oder MyStore.bin)
MyClass wird erweitert und modifiziert (Version 1.1)
aus MyStore.xml (oder MyStore.bin) soll wieder ein Objekt erstellt Verden (Version 1.1)
Bei 3. gehts schief, da Struktur nicht mit dem Objekt übereinstimmt!
Aber zum Beispiel können Attribute doch auch Verweise zu
Win32-dll-Dateien sein, auf die ich in der Methode zugreifen
kann. Irgendwie kriege ich diese breiten Möglichkeiten, die
Attribute beherbergen, noch nicht unter einen Hut…
Wozu müsste zum Beispiel solch eine dll-Datei zur Benutzung in
der Methode als Attribut zur Verfügung gestellt werden?
nicht das ich wüsste. Wie kommst Du zu dieser annahme, dass Attribute Verweise sein können? Mir ist das unbekannt.
Wozu müsste zum Beispiel solch eine dll-Datei zur Benutzung in
der Methode als Attribut zur Verfügung gestellt werden?
nicht das ich wüsste. Wie kommst Du zu dieser annahme, dass
Attribute Verweise sein können? Mir ist das unbekannt.
So habe ich z.B. folgendes Attribut interpretiert:
[DllImport(„user32.dll“, CharSet=CharSet.Auto)]
Verweis nicht, sorry, aber Einbinden von Code. Das angegebene Attribut sagt doch aus, dass die dll in dem folgenden Code benutzt werden kann, oder? Kann also durch ein Attribut eine komplette dll „angehängt“ werden?
ich habe es selbst herausgefunden: dieses Attribut ist für die CLR ein Hinweis, wo Code im Falle einer externen Methode zu finden ist. Also sucht die CLR automatisch nach dem Inhalt dieses Attributes, nehme ich an.