Forum: PC-Programmierung C# Datenkapselung


von Simon Widerkehr (Gast)


Lesenswert?

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

: Verschoben durch Moderator
von c-hater (Gast)


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...

von Simon Widerkehr (Gast)


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?

von c-hater (Gast)


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.

von Simon Widerkehr (Gast)


Lesenswert?

Ich darf kein public benutzen, sondern muss mit public long xxx arbeiten

Könnte ihc dir meinen Code schicken und du gibst mir Tipps zum 
Verbessern?

von dunno.. (Gast)


Lesenswert?

Wer im code behind modifikationen an properties von ui elementen 
vornimmt, -am besten noch einfach irgendwo im code- gehört eigentlich 
sowieso gesteinigt..

von P.Loetmichel (Gast)


Lesenswert?

Mit BASCOM muss ich kein Daten kapseln.

von Sven K. (quotschmacher)


Lesenswert?

P.Loetmichel schrieb:
> Mit BASCOM muss ich kein Daten kapseln.

? Und wenn ich Auto fahre muss ich das auch nicht.

von c-hater (Gast)


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...

von Wühlhase (Gast)


Lesenswert?

c-hater schrieb:
> 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...
Das sind aber erfahrungsgemäß aber sehr, sehr wenige...

von doppelschwarz (Gast)


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.

von Bernd K. (prof7bit)


Lesenswert?

Wühlhase schrieb:
> c-hater schrieb:
>> 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...

> Das sind aber erfahrungsgemäß aber sehr, sehr wenige...

Das ist der Fachkräftemangel. Der sichert unsere Jobs.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.