Thema Datum  Von Nutzer Rating
Antwort
23.08.2021 12:54:13 ichh
NotSolved
23.08.2021 13:10:30 Gast67192
NotSolved
23.08.2021 13:23:02 ichh
NotSolved
23.08.2021 13:27:48 Gast29089
NotSolved
23.08.2021 13:47:42 ichh
NotSolved
23.08.2021 14:02:30 Der Steuerfuzzi
NotSolved
23.08.2021 14:24:22 ichh
NotSolved
23.08.2021 14:57:59 Der Steuerfuzzi
NotSolved
Rot 2 Probleme
23.08.2021 14:59:07 Gast12385
NotSolved
23.08.2021 15:23:19 ichh
NotSolved
23.08.2021 15:37:48 Gast17341
NotSolved
23.08.2021 16:26:52 Gast68875
NotSolved
23.08.2021 15:12:52 Gast36686
NotSolved

Ansicht des Beitrags:
Von:
Gast12385
Datum:
23.08.2021 14:59:07
Views:
521
Rating: Antwort:
  Ja
Thema:
2 Probleme

bin nicht vertraut mit Propertys. Komme aus dem C++-Bereich, da handhabt man das anders.

Da wird das genau so gehandhabt. ;)

Anfänglich mit Getter und Setter Methoden, später kamen - seit C++ Version 6 meiner Erinnerung nach - dann auch Properties via Attribut. Das hat aber kaum jemand verwendet, weil es "ecklig" war diese Funktionalität pratisch zu benutzen; so blieben viele bei den zuvor genannten Getter und Setter.

 

Warum macht man das so?

Man möchte demjenigen, der diese Klasse benutzt nicht die Möglichkeit geben die Variable direkt zu verändern. Darum stellt man eine Property dafür bereit um einen kontrollierten Zugriff zu gewährleisten - im Englischen spricht man von Encapsulation.


Du kannst theoretisch/praktisch auch folgendes schreiben:

'Klasse: Auto
Public Baujahr As Integer
Public Farbe As String

und könntest genauso dann damit arbeiten:

  Dim objAuto1 As Auto
  Set objAuto1 = New Auto
  
  objAuto1.Baujahr = 1700
  
  Debug.Print objAuto1.Baujahr

Nur hast du dann keinerlei Kontrolle darüber was da drin steht - 1700 gabs noch keine Autos. ;)

Darum würde man das z.B. so implementieren:

Public Property Let Baujahr(RHS As Integer)
  If RHS < 1886 Then
    Call Err.Raise(5, TypeName(Me) & ".Baujahr") '5 = invalid arg
  End If
  m_Baujahr = RHS
End Property

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
23.08.2021 12:54:13 ichh
NotSolved
23.08.2021 13:10:30 Gast67192
NotSolved
23.08.2021 13:23:02 ichh
NotSolved
23.08.2021 13:27:48 Gast29089
NotSolved
23.08.2021 13:47:42 ichh
NotSolved
23.08.2021 14:02:30 Der Steuerfuzzi
NotSolved
23.08.2021 14:24:22 ichh
NotSolved
23.08.2021 14:57:59 Der Steuerfuzzi
NotSolved
Rot 2 Probleme
23.08.2021 14:59:07 Gast12385
NotSolved
23.08.2021 15:23:19 ichh
NotSolved
23.08.2021 15:37:48 Gast17341
NotSolved
23.08.2021 16:26:52 Gast68875
NotSolved
23.08.2021 15:12:52 Gast36686
NotSolved