2010-04-28 17 views
16

Mi sono imbattuto in una classe che non è statica, ma tutti i metodi e le variabili sono statici. Ad esempio:Perché tutti i metodi/variabili statici in una classe non statica?

public class Class1 { 

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

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

Tutte le variabili sono statiche in tutte le istanze, quindi non vi è alcun punto che abbia istanze separate della classe.

C'è qualche motivo per creare una classe come questa?

risposta

5

No. Rendilo classe statica.

17

La classe è stata riscritta nei giorni .NET 1.x? Le classi statiche non sono apparse fino a C# 2.0.

+5

E nella mia esperienza, anche con .NET 2.0 o versioni successive, molti sviluppatori hanno dimenticato di usare quella parola chiave in tale classe! –

+1

Heck, anche Visual Studio si dimentica! Scopri la classe "Programma" quando avvii una nuova app per console! –

0

No, se nella classe non ci sono membri di istanza, dovrebbe essere statico.

4

No. Alcune persone non si rendono conto che le classi stesse possono essere statiche e quindi non includere nella definizione della classe. Ciò è utile perché offre opzioni intellisense migliori e assicura che i metodi futuri vengano aggiunti staticamente.

Ciò sigilla anche implicitamente la classe.

1

classe statica fornire:

  • Contiene solo i membri statici.

  • Impossibile creare un'istanza.

  • È sigillato.

  • Impossibile contenere costruttori di istanze.

Creare una classe statica è quindi fondamentalmente la stessa cosa della creazione di una classe che contiene solo membri statici e un costruttore privato.

+0

Non può essere lo stesso di "creazione di una classe che contiene solo membri statici e un costruttore privato", perché una classe di questo tipo avrebbe bisogno di essere istanziata. Una classe statica no. – CJ7

+0

@Craig Hai ragione. Mi sono aggiornato :) – Rajesh

Problemi correlati