2010-02-22 15 views
5

¿Las variables estáticas tienen la misma o similar funcionalidad en C# que en C++?¿Cuál es la diferencia entre una variable estática en C++ vs. C#?

Editar:

Con C++ se pueden utilizar variables estáticas en muchos contextos diferentes - tales como: 1) Las variables globales, 2) las variables de función locales, 3) miembros de la Clase - ¿Le usos similares en C# se comportan similar a la de C++?

Respuesta

5

Estática tiene múltiples significados en C++.

Las variables estáticas en C# básicamente solo tienen un único significado: variables con alcance a un tipo. En C#, estática en un tipo se utiliza para denotar una variable de ámbito de tipo. Estático en un método es un método de ámbito de tipo. Static también se puede usar en una clase para indicar que toda la clase está compuesta solo de métodos estáticos, propiedades y campos.

No hay equivalentes a variables estáticas dentro de un alcance de función, o valores estáticos de ámbito no clase.


Editar:

En respuesta a los su edición, C#, básicamente, sólo se utiliza para los miembros de la clase estática. Las variables Globales y de la función estática local no son compatibles con C#. Además, como mencioné anteriormente, puede marcar una clase entera como "estática", lo que básicamente hace que el compilador verifique que no haya miembros no estáticos en la clase.

0

Una variable estática en C# se comporta como una variable de miembro estática en C++. Eso está fuera de los múltiples significados de la palabra clave "estática" en C++, solo que uno de ellos existe en el contexto de C#. P.ej. no se puede limitar el alcance de un archivo con estática (que es estrictamente una función C) en C#

1

From MSDN: La palabra clave estática: En C++, estática puede ser utilizado tanto para declarar las entidades de nivel de clase y declarar tipos que son específicos de un módulo. En C#, static solo se usa para declarar entidades de nivel de clase.

Cuestiones relacionadas