C# Datenkapselung

Gast #5464428
Lesenswert?

Simon Widerkehr schrieb:

> Hallo Zusammen
>
> Ich habe gerade ein Problem im C#, welches ich nicht lösen kann.
>
> Ich verstehe nicht, wie ich im get-und set mit zwei Attributen
> gleichzeitig programmieren kann. Ich habe immer nur einen Wert, den ich
> holen kann...
>
> Vielen Dank für eure TIpps

Lerne die Sprache...

Sowas wie "Attribute" gibt es nicht für Getter und Setter in C# (wenn 
man mal Designtime-Attribute außen vor lässt).

Worum es dir vermutlich geht, ist der Zugriff auf mehr als 
Null-dimensionale Properties. Wenn ich da richtig liege, willst du nicht 
mit "zwei Attributen gleichzeitig programmieren"), sondern ein Property 
mit einem mehrdimensionalen Index schaffen.

Dann tue das einfach. Wie es geht, sagt dir die Sprachdefinition. Also:

Lerne die Sprache...
Gast #5464434
Lesenswert?

Ich muss einfach von zwei Scrollbars die werte nehmen und diese dann 
miteinander divideren und in einem textfeld ausgeben. das problem ist 
einfach, dass die beiden scrollbars ihre ausgaben an zwei private 
Attribute geben. WIe mache ich das richtig?
Gast #5464458
Lesenswert?

Simon Widerkehr schrieb:

> Ich muss einfach von zwei Scrollbars die werte nehmen und diese dann
> miteinander divideren und in einem textfeld ausgeben. das problem ist
> einfach, dass die beiden scrollbars ihre ausgaben an zwei private
> Attribute geben.

Das tuen sie bestimmt nicht. Vergiss ganz schnell den Begriff 
"Attribute", das ist etwas völlig anderes. Wenn, dann packen sie das in 
zwei private Membervariablen.

> WIe mache ich das richtig?

Du schaffst einfach zwei öffentlich zugängliche Properties, die dir 
Zugriff von "außen" ermöglichen. Dazu muss du nur von der Klasse erben, 
die du benutzen willst (und dann natürlich nicht mit der Original-Klasse 
arbeiten, sondern mit dem Erben).

Aber Vorsicht, sowas kann unerwünschte Effekte haben. Solange du die 
Funktionsweise der Originalklasse nicht verstehst, solltest du dich bei 
solchen Aktionen auf jeden Fall auf readonly Properties beschränken.
Gast #5465309
Lesenswert?

P.Loetmichel schrieb:

> Mit BASCOM muss ich kein Daten kapseln.

Deswegen fällst du mit BASCOM auch bei jedem nichttrivialen Programm 
sehr schnell auf die Schnauze...

Mal ganz davon ab, dass BASCOM auf PCs wohl eher nicht lauffähig ist...

BASCOM ist im Kern ein übler Macroassembler, der seit den Urzeiten nix 
hinzugelernt hat. C hingegen ist zwar im Kern auch auch nur ein 
Macroassembler, hat aber immerhin einiges gelernt und puzzelt nicht mehr 
nur ausschließlich volldumm Macros aneinander, sondern erkennt zumindest 
teilweise Optimierungspotential und nutzt es dann auch...

Aber auch C ist weit davon weg, das Abstraktionslevel objektorientierter 
Sprachen zu erreichen. Ja, man kann das teilweise hinfrickeln, aber es 
bleibt halt Frickelei.

Fakt ist: Nur wer alles kann, von Assembler bis hin zu funktionaler 
Programmierung, ist ermächtigt, sich ein Urteil über die Eignung einer 
Sprache für ein konkretes Problem anzumassen...
Gast #5485590
Lesenswert?

Simon Widerkehr schrieb:
> Ich muss einfach von zwei Scrollbars die werte nehmen und diese dann
> miteinander divideren und in einem textfeld ausgeben. das problem ist
> einfach, dass die beiden scrollbars ihre ausgaben an zwei private
> Attribute geben. WIe mache ich das richtig?

Schau Dir mal die Erklärung zu get und set an unter 
https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/classes-and-structs/using-properties
Im obersten Codebeispiel kannst Du von außen nur auf Month zugreifen (da 
public), jedoch nicht auf month (private). Siehe auch die Erklärung 
dazu. Wenn Du jetzt 2 Eigenschaften brauchst (z.B. Day) einfach in die 
Klasse hinzufügen. Oder bei Dir eben ScrollbarValue1 und 
ScrollbarValue2. Und wenn Du nur lesen willst natürlich nur get 
verwenden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren