Почему все статические методы / переменные в нестатическом классе? - PullRequest
16 голосов
/ 28 апреля 2010

Я столкнулся с классом, который не является статичным, но все методы и переменные являются статическими. Например:

public class Class1 {

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

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

Все переменные являются статическими для всех экземпляров, поэтому нет смысла иметь отдельные экземпляры класса.

Есть ли причина для создания такого класса?

Ответы [ 5 ]

17 голосов
/ 28 апреля 2010

Был ли класс записан в дни .NET 1.x? Статические классы не появлялись до C # 2.0.

5 голосов
/ 28 апреля 2010

Нет.Сделайте это статическим классом.

4 голосов
/ 28 апреля 2010

Нет. Некоторые люди не понимают, что сами классы могут быть статическими, и поэтому не включают их в определение класса. Это полезно, потому что предоставляет лучшие варианты intellisense и гарантирует, что будущие методы будут добавлены статически.

Это также неявно запечатывает класс.

1 голос
/ 28 апреля 2010

Статический класс обеспечивают:

  • Содержит только статические элементы.

  • Не может быть создан.

  • Запечатан.

  • Не может содержать конструкторы экземпляров.

Поэтому создание статического класса в основном аналогично созданию класса, который содержит только статические члены и закрытый конструктор.

0 голосов
/ 28 апреля 2010

Нет, если в классе нет членов экземпляра, тогда он должен быть статическим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...