Sì, una classe static
è tecnicamente un tipo. Può avere membri (campi, metodi, eventi). Uno spazio dei nomi può contenere solo tipi (e non è considerato un "tipo" da solo; typeof(System)
è un errore in fase di compilazione).
Non esiste un equivalente diretto all'aggiunta di una direttiva using
per uno spazio dei nomi per una classe statica. È possibile, tuttavia, dichiarano gli alias:
using ShortName = ReallyReallyLongStaticClassName;
e utilizzare
ShortName.Member
quando ci si riferisce ai suoi membri.
Inoltre, è possibile utilizzare le classi statiche per dichiarare metodi di estensione su altri tipi e utilizzarli direttamente senza far riferimento al nome della classe in modo esplicito:
public static class IntExtensions {
public static int Square(this int i) { return i * i; }
}
e usarlo come:
int i = 2;
int iSquared = i.Square(); // note that the class name is not mentioned here.
Di Naturalmente, dovrai aggiungere una direttiva using
per lo spazio dei nomi contenente la classe per utilizzare il metodo di estensione se la classe non è dichiarata nello spazio dei nomi root o corrente.
fonte
2010-01-06 14:41:48
Riscrivere il nome della classe ogni volta è in realtà, a mio parere, una buona cosa. E non è necessario * digitare * il nome ogni volta - in genere in Visual Studio, si digita la prima lettera e quindi il punto e la classe è ancora selezionata. – OregonGhost
@OregonGhost: O, come dicono i Python: "I Namespace sono una delle grandi idee - facciamolo di più!" – balpha