Autor Beitrag
Rubbellos
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 02.05.16 21:05 
Ich brauche eine Funktion/Methode für eine Klassenmethode die ein Array erstellt, dessen Name der einer Variable ist. Die Variable wird als ein Argument des Konstruktors übergeben. Jetzt soll eine Array erstellt werden (mit Werten die in der Methode berechnet werden) das an den Aufrufer der Klassenmethode zurückgegeben wird. Wie mache ich das? Sry falls ich die Sache ganz falsch angehe oder die Lösung offensichtlich ist :)
Gruß Rubbellos
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 02.05.16 21:12 
Häh? Bitte nochmal neu formulieren ich kann dir in keinster Weise folgen was du willst.
Rubbellos Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 02.05.16 21:21 
Ich will in einer Klasse eine Array erstellen, das soll als Namen ( int[] Name = new int[]{}) den Namen einer anderen Variable haben. Heißt ich kriege vorher einen Namen, z.B. Thomas, dann soll die Funktion dem Array den Namen Thomas[] geben.

ausblenden C#-Quelltext
1:
2:
string  Wertdenichkriege = "Thomas";
int[] wertdenichkriege = new int[]{};

Und den Array will ich dann über Thomas[] aufrufen
Ich hoffe das ist irgendwie verständlich
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Mo 02.05.16 21:40 
user profile iconRubbellos hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden C#-Quelltext
1:
2:
string  Wertdenichkriege = "Thomas";
int[] wertdenichkriege = new int[]{};

Und den Array will ich dann über Thomas[] aufrufen.


Dann tue es doch!

Oder gefragt: Übersetzt der Compiler den Code? Falls ja, wo ist das Problem? Falls nein, was moniert er?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 02.05.16 21:54 
Zitat:
Ich hoffe das ist irgendwie verständlich

Ja aber so wie du es beschreibst eher unmöglich.
Zitat:
Und den Array will ich dann über Thomas[] aufrufen

Wenn der Begriff Thomas in einem string steht dann kann es da erst zur Laufzeit des Programms rein gekommen sein.
Thomas[] ist aber ein Ausdruck der während dem Compilieren feststehen muss also viel früher.
In jedem stark typisierten System also prinzipiell unmöglich wenn ich deine Anforderung wörtlich nehme.
Die Programme die das können was du willst sind Compiler. Ich bezweifle aber das du deinen eigene Compiler schreiben willst.
Wenn du eine Zuordnung string (ein Datentyp) zu einem Array (ein anderer Datentyp) brauchst dann benutzte eine Dictionary.

ausblenden C#-Quelltext
1:
2:
3:
4:
Dictionary<stringint[]> dict = new Dictionary<stringint[]>();
dict.Add("Thomas"new int[] { 123456 });

int[] thomas = dict["Thomas"];

Für diesen Beitrag haben gedankt: Rubbellos
Rubbellos Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 02.05.16 22:10 
Hmm... ok
Das mit dem Dictionary is mir grad noch zu hoch... bin noch nichtmal nen Monat am programmieren und ralle die Syntax grade nicht so ganz.
Ich hab aber eine Idee wie ich das was ich will möglicherweise trotzdem erreichen kann.
Kann/Darf ich:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
int Variable1, Variable2;
int[] VaribleA = new int[5];
Variable1.Klasse.Methode(Variable1);
for(i = 0; i < ArrayKlasse.Lenght - 1, i++)
{
VariableA[i] = ArrayKlasse[i]
}
Variable2.Klasse.Methode(Variable2);
.
.
.

Ich hab eine Klasse, die nimmt eine Variable als Argument und spuckt einen string(ArrayKlasse) aus der auf der Variable basiert. Dann gebe ich per for schleife die Werte auf einen neuen Array um die Klasse dann auf eine weiter Variable anzuwenden. Geht das?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 02.05.16 22:18 
Das verstehe ich jetzt gerade nicht. Wir müssen glaube ich daran arbeiten eine gemeinsame Sprache zu finden ;)

Was möchtest du mit dem Pseudocode Variable1.Klasse.Methode(Variable1); ausdrücken?
Variable1,Variable2 sind integer und werden in dem Code immer Integer sein. Woher kommt ArrayKlasse? Und wenn du einfach das Array ArrayKlasse in Variable1 umkopieren willst dann tu das einfach.
Wofür brauchst du die 2 Integer Variablen?
Rubbellos Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 02.05.16 22:26 
Ich habe neben dem Code eine Klasse. Diese Klasse nimmt per Konstruktor ein Argument, z.B. Variable1. In der Klassenmethode werden verschiedenen Rechenoperationen durchgeführt und die Ergebnisse werden als Array. Also jedes Ergebnis als eigenes Array-Element. Und am Ende soll die Klasse diesen Array wieder zurckgeben. Und der zweite Integer is einfach nur da um zu zeigen dass ich die Klassenmethode so mehrmals anwenden will.
Soll ich die vieleicht einmal das ganze Projekt erklären? Vielleicht is es dann verständlicher :P
Gruß Rubbellos
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 02.05.16 22:38 
Unter einer Klassenmethode versteht man üblicherweise eine statische Methode. Du auch?
Bei einer statischen Methode hilft kein Konstruktor. Über einen Konstruktor erhält man eine Instanz einer Klasse. Instanz haben Instanzdaten. Klassen haben Klassendaten. Klassen haben keine Zugriff auf Instanzdaten. (Umgekehrt schon)
Insofern habe ich Probleme zu verstehen was du willst wenn du gleichzeitig von Konstruktor und Klassenmethoden sprichst.

Ich tu mal so das du einfach Methode meinst und nicht Klassenmethode ;) Und die möchtest du so aufrufen das dort ein Array zurückkommt das du gerne thomas nennen möchtest?
Dann etwa

ausblenden C#-Quelltext
1:
2:
3:
4:
int Variable1 = 15;
MeineLiebeKlasse klasse = new MeineLiebeKlasse(Variable1);

int[] thomas = klasse.MeineLiebeMethode();

Für diesen Beitrag haben gedankt: Rubbellos