Autor Beitrag
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Di 17.11.09 09:29 
Moin,

Wie sollte ich am Geschicktesten einer Klasse Parameter zuordnen, wenn die Parameter sich nur im Namen und den eigenen Parameter unterscheiden? Als Beispiel:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Auto:
  Rad VorneLinks:
    Position, Profiltiefe
  Rad VorneRechts:
    Position, Profiltiefe
  Rad HintenLinks:
    Position, Profiltiefe
  Rad HintenRechts:
    Position, Profiltiefe



In der eigentlichen Anwendung möchte ich dann über Auto["VorneLinks"].ProfilTiefe (o.ä.) darauf zugreifen können. Vielen Dank im Vorraus :)

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 17.11.09 09:46 
Hallo Jan,

du hast es doch schon skizziert: Du brauchst ein Array als internen Member. Die Anzahl der Elemente sollte durch den Konstruktor der Auto-Klasse festgelegt werden (Pkw = 4, Lkw bis zu 20 oder so, Kleintransporter auch 3 denkbar). Der Zugriff erfolgt durch einen Indexer; den kannst du auch mit Strings oder Enums füttern.

Für die Profiltiefe brauchst du eine zusätzliche Klasse Reifen. Die Profiltiefe ist eine Eigenschaft eines Reifens, aber keinesfalls eine des Autos (Widerspruch zur OOP)! Das Auto benutzt also ein Reifen-Array.

Gruß Jürgen
ene Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Di 17.11.09 09:54 
Hallo Jürgen,

ja die Struktur ist mir eigentlich bekannt, nur weiß ich nicht so recht, was mir in C# zur Verfügung steht. In Delphi würde ich ein Type Rad = Record nehmen und mir daraus ein Array machen. In C# weiß ich nicht wirklich, was für ein Konstrukt ich verwenden soll :(

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 17.11.09 10:25 
Ich habe es ganz eindeutig gesagt: Klasse "Reifen" oder "Rad" mit passenden Eigenschaften, das Auto hat eine Eigenschaft "Räder", die vom Typ "Rad-Array" ist und auf die mit einem Indexer zugegriffen wird. Jürgen
ene Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Di 17.11.09 10:29 
Hm, hattest du das nachträglich geändert oder hab ich das überlesen? Ok, dann weiß ich Bescheid.

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 17.11.09 10:43 
user profile iconene hat folgendes geschrieben Zum zitierten Posting springen:
Hm, hattest du das nachträglich geändert

Der zweite Absatz ist ein paar Minuten später gekommen. In der Zwischenzeit warst du vielleicht schon beim Schreiben. :wink:

Nachtrag: Auch unter C# ginge es mit einer Struktur. Ich empfehle aber, das nur für so etwas wie Basistypen zu verwenden, aber bei "richtigen" Objekten gleich mit Klassen zu arbeiten.

Jürgen