Zum Inhalt springen

wozu properties in vb.net?


fragnichmich

Empfohlene Beiträge

hallo alle,

ich habe bisher vornehmlich mit java gearbeitet und versuche nun mich mit vb.net anzufreunden. kann mir bitte jemand den sinn des property-konstrukts erklären, oder anders: wo ist hier der unterschied zwischen a und b?


    Private _a As Integer


    Public Property a() As Integer

        Get

            Return _a

        End Get

        Set(ByVal Value As Integer)

            _a = Value

        End Set

    End Property

und

    Private _b As Integer


    Public  get_b() As Integer

            Return _b

    End get_b


    Public set_b(ByVal value As Integer)

            _b = value

    End set_b

gruß

ich

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kenn mich mit der VB Syntax nicht aus deswegen bin ich mir nicht sicher ob das erste so richtig ist. Wenn es aber so stimmt dann hast du beim ersten getter und setter für a und beim zweiten einfach nur Funktionen um b zu setzten bzw. zurückzugeben. Also Pseudo getter/setter wie in Java.

Beim ersten schreibst du dann zum Beispiel

Instanz.a = 5;

und beim zweiten

Instanz.set_b(5);

Link zu diesem Kommentar
Auf anderen Seiten teilen

naja,

ich bin mir nicht sicher, ob man wirklich in getter / setter und pseudo-getter / -setter differenzieren kann? der compiler macht doch aus beidem das gleiche, oder gibt es da einen unterschied?

die unterschiedliche schreibweise beim aufruf ist klar. aber ich frage mich, ob die schreibweise die einführung eines neuen programmier-konstruktes (erhöhung der komplexität) rechtfertigt?

die lesbarkeit ist natürlich sehr von der gewöhnung abhängig. mich irritiert das mit den properties im moment mehr. auch das mit den modifikatoren löse ich dadurch, dass ich den entsprechenden modifikator einfach weg lasse. dann wird er mir über intellisense auch nicht angeboten.

worauf ich hinaus will: ich finde es intuitiv, dass ich eine variable habe, die ich über eine funktion schreiben oder lesen kann. punkt - aus - fertig. das ist einfach und von geringer komplexität.

mich irritiert, dass diese funktionen in vb in ein property-konstrukt verpackt werden. das erhöht aus meiner sicht die komplexität ohne (einen für mich) erkennbaren mehrwert.

macht der compiler etwas anderes daraus?

gruß

ich

Link zu diesem Kommentar
Auf anderen Seiten teilen

die unterschiedliche schreibweise beim aufruf ist klar. aber ich frage mich, ob die schreibweise die einführung eines neuen programmier-konstruktes (erhöhung der komplexität) rechtfertigt?
Neu für wen? Properties gab's in VB schon immer, wenn auch nicht für eigenen Code. Getter und Setter sind in anderen Sprachen nicht so allgegenwärtig wie in Java, wo öffentliche Instanzvariablen mehr oder weniger verteufelt werden.

Du kannst natürlich VB.NET so wie Java benutzen, es zwingt dich ja niemand, Properties zu verwenden.

worauf ich hinaus will: ich finde es intuitiv, dass ich eine variable habe, die ich über eine funktion schreiben oder lesen kann. punkt - aus - fertig. das ist einfach und von geringer komplexität.
Ich habe bei Java gelegentlich den Eindruck, dass reflexartig für jede private Instanzvariable Getter und Setter bereitgestellt werden, ohne über den Nutzen nachzudenken. Hinterher ist dann die öffentliche Schnittstelle einer Klasse ein ziemlich exaktes Abbild der internen Struktur. Aber das ist auch nur mein C++-geprägter Eindruck von Java. In anderen Sprachen macht man eben manche Dinge anders. Darüber, ob das besser oder schlechter ist, sollte man erst dann urteilen, wenn man beide Sprachen gut kennt.

mich irritiert, dass diese funktionen in vb in ein property-konstrukt verpackt werden. das erhöht aus meiner sicht die komplexität ohne (einen für mich) erkennbaren mehrwert.
Ich bin ziemlich sicher, dass das in deiner Java-geprägten Sichtweise begründet liegt.

macht der compiler etwas anderes daraus?
Nein.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Neu für wen? Properties gab's in VB schon immer, wenn auch nicht für eigenen Code. Getter und Setter sind in anderen Sprachen nicht so allgegenwärtig wie in Java, wo öffentliche Instanzvariablen mehr oder weniger verteufelt werden.

ja, das stimmt. neu gilt in diesem fall für mich. aber mit dem teufel habe ich es eigentlich nicht so...

Du kannst natürlich VB.NET so wie Java benutzen, es zwingt dich ja niemand, Properties zu verwenden.

meine frage war, ob es unabhängig von der für mich ungewohnten schreibweise einen mehrwert (z.b. besondere funktionalitäten für properties) durch das property-konstrukt gibt, den ich einfach nicht erkannt / übersehen habe?

gruß

ich

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich kenne Properties noch aus der C++Builder Zeit (in Delphi/Kylix war es genauso). Dort waren properties spezielle getter/setter Methoden, die die Eigenschaft besaßen, dass diese im Properties Editor der Entwicklungsumgebung auftauchten.

Also z.B. hatte ein Butten die Properties Text, Color etc. die per Mausklick geändert werden konnte und sich dann auch sofort im Design wiederspiegelten.

Evtl. ist das bei vb.net ähnlich.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

meine frage war, ob es unabhängig von der für mich ungewohnten schreibweise einen mehrwert (z.b. besondere funktionalitäten für properties) durch das property-konstrukt gibt, den ich einfach nicht erkannt / übersehen habe?
Gegenüber Getter/Setter haben Properties den Vorteil, dass sie immer direkt beieinander stehen, und dass sie die in VB gewohnte Zugriffssyntax bieten. Gegenüber öffentlichen Instanzvariablen haben sie den Vorteil der Kapselung und der Möglichkeit der Validierung.
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...