2012-10-31 18 views

risposta

9

I metodi static possono accedere direttamente dalla classe, mentre i metodi non-static (oi metodi di istanza come mi piace chiamarli) devono essere accessibili da un'istanza. Questo è il motivo per cui l'istatazione deve essere eseguita, ad esempio, per i metodi, mentre per i metodi statici non è necessario.

In OOP, static variables vengono utilizzati per valori che non possono essere memorizzati da una variabile di istanza. static methods non può accedere ai metodi o alle variabili di istanza all'interno di una classe. Ovviamente questo ha senso perché quel metodo statico non saprebbe quale istanza della classe stiamo cercando di riferire.

ad es. Supponiamo che tu voglia tenere un conteggio di quante istanze di una classe esiste? Come lo memorizzerai in una singola istanza?

Riferimenti:

  1. Static vs. Non-Static method in C#
  2. Static vs. non-static method
+0

cosa intendi per variabili statiche? Non ci possono essere variabili statiche ma membri (campi, proprietà o metodi). – UfukSURMEN

+1

Questi sono solo un altro nome di variabili, consultare https://en.wikipedia.org/wiki/Static_variable –

+0

Buon punto Grazie. – UfukSURMEN

4
  • static membri sono uno per classe ma membri non statici sono uno per esempio.

  • static ai membri si accede tramite il nome della classe che li incapsula, ma i membri non statici sono accessibili tramite riferimento oggetto.

  • static I membri non possono utilizzare metodi non statici senza creare un'istanza, ma i membri non statici possono utilizzare direttamente i membri static.

  • static constructor viene utilizzato per inizializzare i campi statici, ma per i campi non statici viene utilizzato il costruttore di istanze normale.

  • Vedere here per i punti relativi alle prestazioni.

Problemi correlati