Ci scusiamo per la natura incolta di questa domanda. Se c'è una risposta semplice, solo un link a una spiegazione mi renderà più che felice.Perché i metodi statici devono essere inclusi in una classe?
Dopo 6 mesi di programmazione, trovo che le classi statiche siano in qualche modo utili per memorizzare routine che si applicano a molte classi diverse. Ecco un esempio semplificato di come uso classi statiche, è una classe per l'analisi del testo in varie cose
public static class TextProcessor
{
public static string[] GetWords(string sentence)
{
return sentence.Split(' ');
}
public static int CountLetters(string sentence)
{
return sentence.Length;
}
public static int CountWords(string sentence)
{
return GetWords(sentence).Length;
}
}
e io uso questo in modi ovvi come
class Program
{
static void Main(string[] args)
{
string mysentence = "hello there stackoverflow.";
Console.WriteLine("mysentence has {0} words in it, fascinating huh??", TextProcessor.CountWords(mysentence));
Console.ReadLine();
}
}
La mia domanda è: Perché è necessario per avvolgere questi metodi statici in una classe statica? Sembra non servire a nulla. C'è un modo in cui posso avere questi metodi da soli non inclusi in una classe? So che l'incapsulamento è vantaggioso, ma non vedo l'uso dei metodi statici racchiusi nella classe statica. C'è qualcosa che mi manca stilisticamente o altrimenti? Sto abbaiando completamente su un albero stupido? Sto pensando troppo?
Grande domanda, ma sospetto che sia solo un noioso "perché Java l'ha fatto". – Jacob
Alla fine si riduce a come è stato progettato il linguaggio. Tutti i metodi devono essere in una classe. Perché? Probabilmente per coerenza. –
controllo questo [post] [1] [1]: http://stackoverflow.com/questions/7933540/c-sharp-static-class-why-use – xgencoder