Zum Inhalt springen

Wie funktioniert das hier?


steinadler

Empfohlene Beiträge

Hallo,

wie funktioniert denn sowas:

Ein DataGridViewElement hat eine Eigenschaft "Index" u. "DataGridView" (Parent).

obwohl diese nicht per Konstruktor übergeben werden und auch nicht per set-Accessor zugreifbar sind, werden sie doch geändert, wenn ich dem DataGridView etwas zuweise.

??

Kann mir da jemand einen kleinen Denkanstoß geben?

Link zu diesem Kommentar
Auf anderen Seiten teilen

DataGridViewElement und DataGridView werden wohl über nichtöffentliche Methoden Informationen austauschen.

Oder habe ich die Frage falsch verstanden?

Nee.. das passt schon.. ;-)

Wenn ich einer ControlCollection ein Control hinzufüge, weiß das Control, wer sein Parent ist. Wie kann man sowas denn programmtechnisch selbst umsetzen? Geht das nur mit dem Schlüsselwort internal und einer eigenen Assembly?

Link zu diesem Kommentar
Auf anderen Seiten teilen

unabhängig von der Programmiersprache:

doe Collection müsste jedem Element bei dem Hinzufügen zu dieser sagen, dass es hinzugefügt wurde und beim Entfernen sagen, dass es entfernt wurde

das Element muss dann diese Information speichern

bei Java ist es so, dass jede Methode, der keine Sichtbarkeit zugewiesen wurde, die Sichtbarkeit "package" hat

auf solche kann nur aus dem gleichen Package heraus zugegriffen werden

ob internal in dem Fall das Schlüsselwort in C# dafür ist, weiß ich gerade nicht

es könnte auch so gelöst werden, dass die Collection direkt auf die dafür vorgesehene Variable zugreift, was allerdings zu einem schlechten Design führen kann (kann, muss aber nicht)

spontan ist mir kein Schlüsselwort in C# bekannt, mit dem man das automatisieren könnte

Link zu diesem Kommentar
Auf anderen Seiten teilen

unabhängig von der Programmiersprache:

doe Collection müsste jedem Element bei dem Hinzufügen zu dieser sagen, dass es hinzugefügt wurde und beim Entfernen sagen, dass es entfernt wurde

das Element muss dann diese Information speichern

bei Java ist es so, dass jede Methode, der keine Sichtbarkeit zugewiesen wurde, die Sichtbarkeit "package" hat

auf solche kann nur aus dem gleichen Package heraus zugegriffen werden

ob internal in dem Fall das Schlüsselwort in C# dafür ist, weiß ich gerade nicht

es könnte auch so gelöst werden, dass die Collection direkt auf die dafür vorgesehene Variable zugreift, was allerdings zu einem schlechten Design führen kann (kann, muss aber nicht)

spontan ist mir kein Schlüsselwort in C# bekannt, mit dem man das automatisieren könnte

Ja das ist soweit klar...

internal in C# besagt, dass die Methode nur innerhalb der Assembly, also DLL/Datei etc. entspricht.

Direkt zugreifen würde ja bedeuten, dass man dann von überall aus zugreifen kann und im obigen Beispiel das Parent jeder ändern könnte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Direkt zugreifen würde ja bedeuten, dass man dann von überall aus zugreifen kann und im obigen Beispiel das Parent jeder ändern könnte.

das kommt darauf an, was man als Sichtbarkeit eingestellt hat

eigentlich hatte ich dabei an innere Klassen gedacht (die Element-Klasse als innere Klasse der Collection-Klasse), nur bin ich mir nicht sicher, ob man aus der Collection dann auf private Variablen der Elemente zugreifen kann

andersrum geht es meines wissens (in Java zumindest, in C# dürfte es wohl ähnlich sein)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...