Laden...

Platzhalter in einer Methode

Erstellt von wilco96 vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.116 Views
W
wilco96 Themenstarter:in
50 Beiträge seit 2005
vor 18 Jahren
Platzhalter in einer Methode

Folgendes Problem: Ich erstelle in meinem Programm per chartfx einige charts die von der Art her alle gleich sind. Also soll wenn der User ein Chart sehen will eine Methode aufgerufen in der z.B. stehen sollte.


chartABC.AxisX.Title.Text = "Tage";
chartABC.AxisY.Title.Text = "kWh";

Das ABC soll dann ersetzt werden mit einer Zahl die der Methode übergeben wird.
Wie müssen die Zeilen aussehen damit der Platzhalter von dem übergebenen Wert ersetzt wird?

S
8.746 Beiträge seit 2005
vor 18 Jahren

Schau dir in deinem C#-Buch doch mal die Benutzung von Arrays oder Collections an.

Das was du willst ist ganz schräg, geht auch nicht und wird öfter mal von Leuten angefragt, die aus der Skripting-Ecke kommen.

W
wilco96 Themenstarter:in
50 Beiträge seit 2005
vor 18 Jahren

Schade eigentlich. Mir ist aber nicht klar wie bei mir diesem Problem arrays oder collections weiterhelfen sollten....

P
939 Beiträge seit 2003
vor 18 Jahren

Charts in Arrays oder Collections:

// charts ist ein IDictionary.
string key = "ABC";
charts[key].AxisX.Title.Text = "Tage";
charts[key].AxisY.Title.Text = "kWh";

// charts ist ein Array oder eine IList.
int index = 0;
charts[index].AxisX.Title.Text = "Tage";
charts[index].AxisY.Title.Text = "kWh";

Zu beachten: in .Net 1.1 muss bei Collections gecastet werden, in .Net 2.0 kann der Code direkt so übernommen werden.

Gruss
Pulpapex

S
8.746 Beiträge seit 2005
vor 18 Jahren

Wenn man es genau nimmt, IST es sogar machbar (Reflection)...

W
wilco96 Themenstarter:in
50 Beiträge seit 2005
vor 18 Jahren

@pulpapex
wenn ich deinen Code übernehmen erhalte ich die Fehlermeldung

'int' enthält keine Definition für 'AxisX'

woran kann das liegen?

@svenson
habe mir reflection angeguckt aber habe nicht die leiseste Ahnung wie das damit gehen soll. Kannst mir mal einen Ansatz geben? Danke!

S
8.746 Beiträge seit 2005
vor 18 Jahren

Reflection wäre eine EXTREM aufwändige Möglichkeit, sowas zu realisieren, wie dir zunächst vorschwebte. Das willst du nicht wirklich, schon gar nicht, wenn du noch nicht richtig mit C# und .NET vertraut bist. Zudem ist es einfach eine "schräge" Lösung, die so niemand machen würde. Es geht viel einfacher (eben mit Arrays).

Du solltest wirklich nochmal einen Schritt zurück gehen und dir anschauen wie man mit Arrays umgeht und versuchen, das auf dein Problem anzuwenden (du musst die Charts im Array ablegen, anstelle lauter einzelne Variablen zu definieren, bzw. erzeugt zusätzlich ein Array).

Du erzeugt ein Array mit Typ deiner Charts und weist den einzelnen Elemente die verschiedenen Variablen zu, die der Designer im Sorcecode definiert hat. Dann kannst du einfach mittel einer Zahl ( = Array-Index) den richtigen Chart aufrufen. Sind nur ein paar Zeilen Code, aber dir fehlt offenbar noch das Rüstzeug dafür. Also nochmal Buch unter Arrays aufschlagen.

W
wilco96 Themenstarter:in
50 Beiträge seit 2005
vor 18 Jahren

jo, danke der array musste natürlich vom typ SoftwareFX.ChartFX.Chart sein.
jetzt läufts