vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Property gibt 2x hintereinander angewendet Unterschiedliches aus. 
Autor: Basti78
Datum: 09.08.15 16:03


Hallo,

in meinem vorangegangenen Artikel habe ich die Bedeutungen von ByVal und ByRef vertauscht. Bei Objekten ist dies aber eh egal, ob diese per ByRef oder ByVal übergeben werden, da diese Referenztypen sind und dort das Ergebnis dasselbe ist.

Zunächst einmal sei gesagt, dass ich die hier angeführte Klassenstruktur nur der Übersichtlichkeit halber minimal dargestellt habe. In Wahrheit ist "Base" selbst eine abgeleitete Klasse, da ich eine abstrakte Klasse definiert habe, die ich als Basis für alle meine Objekte, auch andere als die angesprochenen Wrapper, aufgebaut habe.

Was die gezeigte Objektstruktur anbetrifft, benötige ich diese längere Struktur aus folgendem Grunde:

1) In Base habe ich alle für mich wichtigen Methoden von System.Windows.Forms.Control auf meine Base-Klasse als Mustoverride übertragen und in Base(Of T) dann mit Overrides überschrieben, um dort alles auf VObject zu übertragen oder von VObject abzufragen. Dass ich die Methoden bereits in Base (und nicht erst in Base(Of T)) definiert habe, hat zwei Gründe:

1a) Ich wollte nicht für jedes Control (Button, Checkbox, DataGridView, etc.) alle aus System.Windows.Forms.Control übernommenen Methoden noch einmal definieren, sondern nur einmal.

1b) Außerdem hat das den Vorteil, dass ich bei einem Durchlauf im Sinne von "For Each X As Base in Y" in einer Collection, auch mit unterschiedlichen Base-Typen (also Base(Of System.Windows.Forms.Button), Base(Of System.Windows.Forms.Checkbox), etc.), auf alle Methoden der ihnen gemeinsamen Control-Klasse zugreifen kann, was nicht möglich wäre, wenn diese erst ab Base(Of T) definiert wären. Da aber in Base wiederum noch kein VObject mangels Typdefinition T existiert, habe ich diese Methoden dort als MustOverride deklariert.

2) Die hier angesprochene Methode ASub ist nur als Vereinfachung einer Methode dargestellt, die bei meinem Objekt eher folgendes tut: Ich habe die Methode Control.Controls.Add nicht direkt auf Base(Of T) übertragen, sondern durch "ASub" (ohne dass ich hier im Beispiel auf die Anweisungen im Detail eingegangen bin, um es übersichtlich zu halten und die Methode recht lang ist) ersetzt, da diese neben dem Hinzufügen des eingehüllten INPUT-Controls zur Collection des eingehüllten Controls des Objekts, dem die Methode ASub gehört, auch noch etwas anderes machen soll. Dieses "etwas anderes machen" ist bei jedem der Controltypen unterschiedlich definiert und daher habe ich als weitere Klasse "Derived" für die entgültigen Klassen gewählt, da diese Methode bei Base(Of T ) nicht allgemein definierbar war.

Nun habe ich leider immer noch keine Möglichkeit gefunden, wie ich INPUT so übergeben kann, dass tatsächlich das darin eingehüllte Objekt übergeben wird, um damit innerhalb der Methode agieren zu können. Was muss ich also tun, um der Methode das originale eingehüllte Objekt übergeben zu können, um damit innerhalb der Methode zu arbeiten und kein "Nothing" zu erhalten?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Property gibt 2x hintereinander angewendet Unterschiedliches...1.412Basti7809.08.15 10:14
Re: Property gibt 2x hintereinander angewendet Unterschiedli...838Manfred X09.08.15 10:47
Re: Property gibt 2x hintereinander angewendet Unterschiedli...818Basti7809.08.15 12:56
Re: Property gibt 2x hintereinander angewendet Unterschiedli...762Manfred X09.08.15 13:24
Re: Property gibt 2x hintereinander angewendet Unterschiedli...780Basti7809.08.15 16:03
Re: Property gibt 2x hintereinander angewendet Unterschiedli...760sv0001009.08.15 17:09
Re: Property gibt 2x hintereinander angewendet Unterschiedli...775Manfred X09.08.15 17:38

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel