Sí, una clase static
es técnicamente un tipo. Puede tener miembros (campos, métodos, eventos). Un espacio de nombre solo puede contener tipos (y no se considera un "tipo" por sí mismo; typeof(System)
es un error en tiempo de compilación).
No existe un equivalente directo a la adición de una directiva using
para un espacio de nombres para una clase estática. Puede, sin embargo, declarar alias:
using ShortName = ReallyReallyLongStaticClassName;
y utilizar
ShortName.Member
cuando se refiere a sus miembros.
Además, puede utilizar las clases estáticas para declarar métodos de extensión en otros tipos y usarlos directamente sin hacer referencia al nombre de la clase de forma explícita:
public static class IntExtensions {
public static int Square(this int i) { return i * i; }
}
y usarlo como:
int i = 2;
int iSquared = i.Square(); // note that the class name is not mentioned here.
De Por supuesto, deberá agregar una directiva using
para el espacio de nombres que contiene la clase para usar el método de extensión si la clase no está declarada en el espacio de nombres raíz o actual.
Volver a escribir el nombre de la clase cada vez es en realidad, en mi opinión, algo bueno. Y realmente no tiene que * escribir * el nombre todas las veces, generalmente en Visual Studio, debe escribir la primera letra y luego el punto, y la clase todavía está seleccionada. – OregonGhost
@OregonGhost: O, como dice la gente de Python: "Los espacios de nombres son una gran idea: ¡hagamos más de eso!" – balpha