Übergabe von Variablen

Hallo,

mein Vorschlag ist folgender:

---

class Fremdklasse
{
private int[] number_orders; // ich gehe mal davon aus, dass number_orders ein Array ist

public int[] Number_Orders // so werden Properties deklariert. Darauf achten, dass die Property und die
// Variable NICHT exakt gleich geschrieben sind (Groß-/Kleinschreibung wird unterschieden)!
{
get { return number_orders; }
set { number_orders = value; } // hier sollte evtl. noch eine Plausibilitätsprüfung rein
}
}

---

Aus der Klasse Form1 kann jetzt über die Property Number_Orders auf die Variable number_orders zugegrifen werden

---

class Form1
{
public void Methode()
{
Fremdklasse fk=new Fremdklasse();
int[] intArray;
intArray=fk.Number_Orders;
}
}

---

Das wars schon. Noch eine Bemerkung: Klassenvariablen (z. B. number_orders) sollten IMMER private sein (ein Grundsatz der OO-Programmierung). Warum auch aktuelle Sprachen wie C# dennoch die Möglichkeit bieten, eine Klassenvariable public zu deklarieren ist mir ein Rätsel.

Grüße
Sir Raven
 
Zuletzt bearbeitet:
static ?

Ich hätt ne Frage bezüglich Static!

Wenn ich meine Forms ledeglich mit ShowDialog öffne, kann ich ja nur eines öffnen, sprich hier gibt es keine Probleme mit static.

Bei Show() kann es dann doch Probleme geben oder?

In wie Weit stimmt diese Annahme und wie äußern sich die troubles?

Danke
Michi
 
Hallo,

@MichiStroi:

ja, stimmt theoretisch. Wenn man ein Objekt nur einmal benötigt kann man die Felder theoretisch static machen. Allerdings ist das nicht der Sinn von static und führt hin und wieder zu Problemen.

Static ist ausschließlich dafür gedacht, dass man bei MEHREREN Instanzen einer Klasse, auf einen Wert zugreifen kann, der für alle Instanzen gleich ist. Ein Beispiel wäre ein Instanzcounter, der bei jeder Konstruktion um eins erhöht und bei jeder Destruktion um eins verringert wird. Somit kann jede Instanz abfragen wie viele Objekte dieser Klasse zu einem Zeitpunkt existieren.

Wird nur eine Instanz erzeugt, sollten trotzdem alle Felder, die nicht von theoretischen weiteren Instanzen gleichermaßen genutzt werden nicht static sein.

Gehen wir einmal davon aus, dass ein Anwender Deiner Klasse (ein Programmierer, der deine Klasse in sein Programm einbinden will) mehrere Instanzen deiner Klasse erzeugen will. Wenn dann alle Felder static sind krachts zwangsläufig und er kommt nicht dahinter weil Du unsauber programmiert hast. Die Ausrede "Ja, aber die wird ja von keinem anderen genutzt" zählt nicht.

Ich habe mich diesbezüglich schon mehrmals mit einem Kollegen auseinander gesetzt, der die blöde Angewohnheit hat in anderer Leute Code rumzupfuschen und alle Felder meiner Oberfläche static gemacht hat. Wenn ich selbst nämlich meine Oberfläche in ein weiteres Programm einbinden will kommt es zum o. g. Problem.

So, genug getextet.

Grüße
Sir Raven
 
Zurück