mikrocontroller.net

Forum: PC-Programmierung C# Datenkapselung


Autor: Simon Widerkehr (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: c-hater (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Simon Widerkehr (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: c-hater (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simon Widerkehr (Gast)
Datum:

Bewertung
-1 lesenswert
nicht 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?

Autor: dunno.. (Gast)
Datum:

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

Autor: P.Loetmichel (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Mit BASCOM muss ich kein Daten kapseln.

Autor: Sven A. (quotschmacher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P.Loetmichel schrieb:
> Mit BASCOM muss ich kein Daten kapseln.

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

Autor: c-hater (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Wühlhase (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: doppelschwarz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/pro...
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.

Autor: Bernd K. (prof7bit)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.