C # статический и одноэлементный класс

Обзор

Static — это ключевое слово, а Singleton — это проектная реализация. Программист может сделать класс либо singleton , либо статическим , в зависимости от потребностей программы. Каждый тип предлагает ключевые особенности, поэтому вам необходимо знать различия между ними.

Static

Чтобы создать статический класс, мы используем ключевое слово static .

  статический класс  {}  

Есть некоторые особенности статического класса:

  • Статический класс не может быть создан с использованием ключевого слова new . Чтобы получить доступ к членам и методам статического класса, напишите classname , за которым следует точка, а затем имя члена или метода.
  .   
  • Все члены и методы внутри static класса являются быть объявленным с помощью ключевого слова static ; в противном случае будет сгенерирована ошибка времени компиляции.
  • Статические элементы помещаются в высокочастотную кучу памяти, поскольку эти члены работают в течение всего времени жизни программы. Они не должны уничтожаться сборщиком мусора .
  • Статические классы не могут наследовать; они запечатаны.

 using System; namespace StaticvsSingleton {//Класс принимает длину и ширину в качестве входных//и сообщает, является ли он прямоугольником или квадратным статическим классом RectangleOrSquare {//Метод для оценки того, является ли он//прямоугольником  или Square public static void Evaluate (int length, int width) {if (length == width) {Console.WriteLine ("Это квадрат");  } else {Console.WriteLine ("Это прямоугольник");  }}} class MyProgram {//Основной метод static public void Main () {RectangleOrSquare.Evaluate (5, 9);  RectangleOrSquare.Evaluate (6, 6);  }}} 

Синглтон

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

  static   = new  () public static getInstance {get {return }}  

Есть некоторые особенности одноэлементного класса:

  • Существует только один экземпляр класса; поэтому при каждом обращении к объекту пользователю возвращается тот же экземпляр.
  • Объекты-одиночки могут передаваться как ссылка на методы, в отличие от статического объекта.
  • Классы синглтонов имеют частный конструктор, это гарантирует, что они не будут созданы из любого места за пределами класса.
  • Объектам синглтонов выделяется память в куче.
  • Классы синглтонов может наследовать от других классов.
 using System; пространство имен StaticvsSingleton {//Класс принимает длину и ширину в качестве входных данных//и сообщает, является ли он прямоугольным или квадратным классом RectangleOrSquare {//Создание экземпляра одноэлементного класса static RectangleOrSquare Instance = new  RectangleOrSquare (); //Частный конструктор private RectangleOrSquare () {}//Метод для получения экземпляра синглтона public static RectangleOrSquare getInstance {get {return Instance;  }}//Метод для оценки того, является ли он//прямоугольником или квадратом public void Evaluate (int length, int width) {if (length == width) {Console.WriteLine ("Это квадрат");  } else {Console.WriteLine ("Это прямоугольник");  }}} class MyProgram {static public void Main () {//Вы можете получить доступ к одноэлементному классу двумя способами//Метод 1 RectangleOrSquare.getInstance.Evaluate (5, 9);  RectangleOrSquare.getInstance.Evaluate (6, 6); //Метод 2 RectangleOrSquare thisInstance = RectangleOrSquare.getInstance;  thisInstance.Evaluate (5, 9);  thisInstance.Evaluate (6, 6);  }}} 

Оцените статью
nanomode.ru
Добавить комментарий