Почему статические методы нужно заключать в класс?

Извините за невыученный характер этого вопроса. Если есть простой ответ, просто ссылка на объяснение меня более чем обрадует.

После 6 месяцев программирования я обнаружил, что статические классы в некоторой степени полезны для хранения подпрограмм, которые применяются ко многим различным классам. Вот упрощенный пример того, как я использую статические классы, это класс для разбора текста на различные вещи

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; 
    }
}

И я использую его очевидными способами, например

    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(); 
    }
} 

. Мой вопрос: почему необходимо заключать эти статические методы в статические класс? Похоже, это бесполезно. Есть ли способ, чтобы эти методы были не обернуты в класс? Я знаю, что инкапсуляция полезна, но я не вижу применения статических методов, заключенных в статический класс. Есть ли что-то, чего мне не хватает стилистически или иначе? Неужели я полностью лаю на глупое дерево? Я слишком много думаю?

8
задан Daniel Mann 15 November 2011 в 04:51
поделиться