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
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...
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?
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.
Wer im code behind modifikationen an properties von ui elementen
vornimmt, -am besten noch einfach irgendwo im code- gehört eigentlich
sowieso gesteinigt..
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...
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...
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.
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.