Hallo Miteinander,
ich hab mir vorgenommen C# von Grundauf zu lernen. Bisher hatte ich mit C++ und Java mehr oder minder in meiner Schule kontakt. Wirklich begriffen habe ich das OO Konzept aber nie.
Nun bin ich seit gestern an der Thematik "static" kleben geblieben und wollte jetzt hier mal preisgeben wie ich es verstanden habe. In der Hoffnung ein "ja korrekt" oder ein "nein, das ist folgermaßen" von den erfahrernen Usern zu erhalten.
statische Variablen
Also static in Zusammenhang mit Variablen ermöglicht es mir den Variablenwert zu halten solange das Programm ausgeführt wird.
Beispiel:
Jedesmal wenn ich die Methode aufrufe, erhöht sich die variable um 1. Der Wert wird also im Speicher gehalten, auch nach Verlassen der Methode.
Würde ich die Variable global deklarieren als Klassenvariable, gelte der darin angegebene Wert für alle Objekte. Das heißt, beeinfluße ich den Werte mittels eines Methode der Klasse, gilt der gesetzte Wert für alle Objekte die bisher von der Klasse instanziert wurden?
Diese Grundidee übertragen auf Methoden verursacht bei mir aber nun ein Verständnisproblem. Wenn ich also eine statische Methode deklariere, heißt es, sie ist nur einmal instanzierbar, richtig? Aber ich könnte theoretisch x-beliebige Objekte von der Klasse instanzieren und somit die Methode mehrmals nutzen. Irgendwie versteh ich das nicht.
Hier der Anstoß meines Verständnisproblems:
Danke für die Hilfe & Gruß
ich hab mir vorgenommen C# von Grundauf zu lernen. Bisher hatte ich mit C++ und Java mehr oder minder in meiner Schule kontakt. Wirklich begriffen habe ich das OO Konzept aber nie.
Nun bin ich seit gestern an der Thematik "static" kleben geblieben und wollte jetzt hier mal preisgeben wie ich es verstanden habe. In der Hoffnung ein "ja korrekt" oder ein "nein, das ist folgermaßen" von den erfahrernen Usern zu erhalten.
statische Variablen
Also static in Zusammenhang mit Variablen ermöglicht es mir den Variablenwert zu halten solange das Programm ausgeführt wird.
Beispiel:
Code:
Methode()
{
static int x=0;
i++;
}
Jedesmal wenn ich die Methode aufrufe, erhöht sich die variable um 1. Der Wert wird also im Speicher gehalten, auch nach Verlassen der Methode.
Würde ich die Variable global deklarieren als Klassenvariable, gelte der darin angegebene Wert für alle Objekte. Das heißt, beeinfluße ich den Werte mittels eines Methode der Klasse, gilt der gesetzte Wert für alle Objekte die bisher von der Klasse instanziert wurden?
Diese Grundidee übertragen auf Methoden verursacht bei mir aber nun ein Verständnisproblem. Wenn ich also eine statische Methode deklariere, heißt es, sie ist nur einmal instanzierbar, richtig? Aber ich könnte theoretisch x-beliebige Objekte von der Klasse instanzieren und somit die Methode mehrmals nutzen. Irgendwie versteh ich das nicht.
Hier der Anstoß meines Verständnisproblems:
Code:
class FrmMain
{
TextBox txt1 = new TextBox();
Button btn1 = new Button();
Label lblMsg = new Label();
}
private static Methode()
{
Warum müsste ich jetzt hier noch mal jedes o.g. Steuerelement neu instanzieren, um es in der Methode nutzen zu können?
}
Danke für die Hilfe & Gruß