2010-02-22 13 views
5

Le variabili statiche hanno la stessa o simile funzionalità in C# come fanno in C++?Qual è la differenza tra una variabile statica in C++ rispetto a C#?

Edit:

Con C++ è possibile utilizzare variabili statiche in molti contesti diversi - come ad esempio: 1) Le variabili globali, 2) le variabili funzione locali, 3) I membri della classe - Sarebbero usi simili in C# comportarsi simile a quello di C++?

risposta

5

Statico ha più significati in C++.

Le variabili statiche in C# hanno fondamentalmente un solo significato: variabili con scope per un tipo. In C#, statico su un tipo viene utilizzato per indicare una variabile con ambito del tipo. Statico su un metodo è un metodo di tipo scopato. Statico può anche essere utilizzato su una classe per indicare che l'intera classe è composta solo da metodi, proprietà e campi statici.

Non esiste alcuna variabile di tipo statico all'interno di un ambito di funzione o valori statici con ambito non di classe.


Edit:

In reponse per la modifica, C# in pratica utilizza statico per i membri della classe solo. Le variabili globali e di funzione statica locale non sono supportate in C#. Inoltre, come ho detto sopra, puoi contrassegnare un'intera classe "statica", che fondamentalmente fa sì che il compilatore verifichi che non ci siano membri non statici nella classe.

0

Una variabile statica in C# si comporta come una variabile membro statica in C++. Questo è fuori dai molteplici significati della parola chiave 'statica' in C++, solo uno di loro esiste nel contesto di C#. Per esempio. Non è possibile limitare l'ambito in un file con statica (che è strettamente una caratteristica C) in C#

1

From MSDN: La parola chiave static: In C++, statico può essere utilizzato sia per dichiarare le entità a livello di classe e per dichiarare i tipi che sono specifici per un modulo. In C#, static è usato solo per dichiarare entità di livello di classe.

Problemi correlati