Array mit Größenangabe aus Variable erstellen!
-
Hi,
ich will ein Array in einer Klasse erstellen mit einer Größe, die in anderen Variablen steht. C# sagt nun, das diese Variablen static sein müssen, auch kein Problem. Aber nun kann ich nicht mehr auf die Variablen von ausherhalb der Klasse zugreifen. Es kommt immer:"Auf den statischen Member "Nevu.cnevu.weltx" kann nicht mit einem Instanzenverweis zugegriffen werden. Qualifizieren Sie ihn stattdessen mit einem Typnamen."
Hier der Betreffende Code:
private void Form1_Load(object sender, EventArgs e) { DrawingArea = new Bitmap( nevu.weltx, ///FEHLER nevu.welty, ///FEHLER System.Drawing.Imaging.PixelFormat.Format24bppRgb); } } class cnevu { static public int weltx = 200; static public int welty = 200; int[,] welt=new int[weltx,welty]; }
Ich hoffeihr könnt mir helfen!
Danke!
-
Richter schrieb:
ich will ein Array in einer Klasse erstellen mit einer Größe, die in anderen Variablen steht. C# sagt nun, das diese Variablen static sein müssen
Im allgemeinen nicht. Nur wenn du dein Array sofort initialisierst. (Könntest du auch in dem Konstruktor machen)
Aber nun kann ich nicht mehr auf die Variablen von ausherhalb der Klasse zugreifen. Es kommt immer:
"Auf den statischen Member "Nevu.cnevu.weltx" kann nicht mit einem Instanzenverweis zugegriffen werden. Qualifizieren Sie ihn stattdessen mit einem Typnamen."
Jo. Da die Variable statisch ist schreibt, man
cnevu.weltx //statt nevu.weltx //#-------------- //also Klassenname.variable //und nicht Instanzname.variable
Ausserdem
cnevu nevu=new cnevu(); //ist echt nicht schön. World theWorld=new World(); //ist doch viel leserlicher, oder?
-
Danke!
Das funktioniert!
DeinWorld theWorld=new World();
ist vielleicht leserlicher aber beschreibt nicht den Sinn der Klasse
Trozdem DANKE!
-
Jo. War auch nicht das Ziel. Es ging allgemein um den Stil der Namensgebung. Die Aussage sollte sein: "Du hättest auch was leserliches als cnevu finden können. Und cnevu nevu=new cnevu(); sieht echt schwierig aus"
Vielleicht sowas wie "NewEvolution nevu=new NewEvolution();"?
-
Wow ein Hellseher