Подтвердить что ты не робот

Почему все статические методы/переменные в нестационарном классе?

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

public class Class1 {

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

Это также неявно уплотняет класс.

Ответ 4

Статический класс:

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

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

  • Запечатан.

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

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

Ответ 5

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