2010-04-28 15 views
16

He encontrado una clase que no es estática, pero todos los métodos y variables son estáticos. Ej:¿Por qué tienen todos los métodos/variables estáticos en una clase no estática?

public class Class1 { 

    private static string String1 = "one"; 
    private static string String2 = "two"; 

    public static void PrintStrings(string str1, string str2) 
    { 
     ... 

Todas las variables son estáticas en todos los casos, lo que no hay punto de tener instancias independientes de la clase.

¿Hay alguna razón para crear una clase como esta?

Respuesta

5

No. Haz que sea una clase estática.

17

¿Se escribió la clase en los días .NET 1.x? Las clases estáticas no aparecieron hasta C# 2.0.

+5

Y en mi experiencia, incluso con .NET 2.0 o posterior, ¡muchos desarrolladores olvidaron usar esa palabra clave en dicha clase! –

+1

¡Diablos, incluso Visual Studio se olvida! ¡Mira la clase "Programa" cuando comiences una nueva aplicación de consola! –

0

No, si no hay miembros de instancia en la clase, entonces debe ser estática.

4

No. Algunas personas no se dan cuenta de que las clases sí pueden ser estáticos, y por lo tanto no se incluyen en la definición de clase. Esto es útil porque proporciona mejores opciones de intellisense y garantiza que los métodos futuros se agreguen estáticamente.

Esto también sella de manera implícita la clase.

1

clase estática proporcionar:

  • Contiene sólo los miembros estáticos.

  • no puede ser instanciada.

  • está sellado.

  • No puede contener constructores de instancias.

Crear una clase estática es, por lo tanto, básicamente lo mismo que crear una clase que contenga solo miembros estáticos y un constructor privado.

+0

No podría ser lo mismo que "crear una clase que contenga solo miembros estáticos y un constructor privado" porque tal clase necesitaría ser instanciada. Una clase estática no. – CJ7

+0

@ Craig Tienes razón. Me actualicé a mí mismo :) – Rajesh

Cuestiones relacionadas