ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1035
1035
EMPFEHLEN
-
28.05.10 08:44 #1besy Tutorials.de Gastzugang
Hallo,
ich schreibe derzeit an einem kleinen Programm und hänge gerade an einer Stelle:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
public void method1() { . . // Do something . . myStruct[] myS = new myStruct[4]; . . Klasse2 k2 = new Klasse2(); myS = k2.rechneWasGroßes(myS); //Do something expensive . . }
Code :1 2 3 4 5 6 7 8
public struct myStruct { public string name; public int wert1; public int wert2; public int wert3; public int wert4; }
In der Methode sollen mit dem Array voller Structs nun komplexere Berechnungen ausgeführt werden welche ich gerne in eine andere Klasse auslagern würde (Klasse 2). Das Problem ist das eine andere Klasse das Struct ja gar nicht kennt, somit das Array weder entgegennehmen, noch nach den Berechnungen wieder zurückgeben kann.
Ich habe in Klasse 2 versucht einfach ein identisches Struct anzulegen, dann kommt aber ein Fehler der mir sagt das er Klasse1.myS nicht in Klasse2.myS konvertieren könnte.
Wie übergebe ich denn so ein Struct Array ? An eine Funktion innerhalb derselbe Klasse ist kein Problem, da ist das Struct ja bekannt, aber wie bringe ich einer anderen Klasse bei was da kommt ? Ich glaub ich steh irgendwie aufm Schlauch
-
28.05.10 11:07 #2
- Registriert seit
- Jul 2004
- Ort
- Deutschland
- Beiträge
- 95
Hallo,
Wenn du das struct im namespace deklarierst, also nicht in der Klasse oder Methode, sollte es in beiden Klassen bekannt sein und du kannst es auch in beiden Klassen nutzen.
Vorraussetzung ist das beide Klassen dem sleben Namespace angehören.
Gruß
-
Hallo besy,
da die Struktur public ist, ist das kein Problem. Du musst nur den Klassenbezeichner mit dazuschreiben:
GrußCode csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
public class Klasse1 { // ... public struct myStruct { // ... } } public class Klasse2 { // ... public Klasse1.myStruct [] rechneWasGroßes(Klasse1.myStruct [] mystruct) { return mystruct } }
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
28.05.10 13:59 #4besy Tutorials.de Gastzugang
Super, danke euch, funktioniert so
-
Hi
Mal noch ein kleiner aber nicht ganz unwichtiger Hinweis
Du verwendest in deinem Struct strings. Dies solltest du nicht tun.
Structs sind Value-Types und werden komplett auf den Stack gepackt. String sind jedoch Reference-Types und liegen normalerweise im Heap. Du würdest hier also einen String in den Stack packen, was für den Computer sehr aufwendig ist und je nach String-Länge auch zu Speicherproblemen führen kann.
Zu dem werden String-Operation extrem langsam, da das komplette Struct beim Ändern des Strings kopiert werden muss.
In einem Struct sollten demnach auch nur Value-Types verwendet werden!Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
Ähnliche Themen
-
Variablen zwischen Klassen
Von skee im Forum Java GrundlagenAntworten: 5Letzter Beitrag: 22.01.10, 00:19 -
UND-Verknüpfung zwischen zwei Klassen
Von Dj Mike im Forum CSSAntworten: 3Letzter Beitrag: 06.03.09, 18:11 -
Kommunikation zwischen Klassen
Von hbrauchl im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 04.07.05, 13:01 -
Übrgabe von Strings zwischen Klassen
Von ladodo im Forum VisualStudio & MFCAntworten: 3Letzter Beitrag: 03.11.04, 19:55 -
Daten zwischen Klassen
Von Tentoxa im Forum JavaAntworten: 4Letzter Beitrag: 30.09.04, 14:24





Zitieren


Login





