Классы в C#

25.08.2014 at 17:05

CSharpClasses
Классы являются одним из элементов ООП(объектно-ориентированного программирования). Классы объединяют в себе данные и код для их обработки.
Класс объявляется с помощью ключевого слова class. После ключевого слова идет имя класса, потом содержимое, заключенное в фигурные скобки.

class Animal
{
  string Name { get; set; }
  void Speak()
  {
    Console.WriteLine(this.Name);
  }
}

Класс животного содержит свойство Name — имя животного, и метод Speak() выводящий имя в консоль.

Модификаторы доступа

При создании класса можно указать видимость это класса. Для этого используются следующие модификаторы:
internal — класс доступен только в той сборке, в которой объявлен.
public — класс доступен из других сборок.
Значение по умолчанию — internal.
Пример указания модификатора:

public class Animal
{
  ...
}

Конструкторы

Конструктор — это метод, которые вызывается для создания экземпляра класса. Его имя должно совпадать с именем класса. Класс может иметь несколько конструкторов с разными наборами параметров. Если у класса не указан ни один конструктор — компилятор создает неявный конструктор без параметров.
Пример класса с конструктором:

class Animal
{
  string Name { get; set; }
  void Speak()
  {
    Console.WriteLine(this.Name);
  }
  public Animal(string name)
  {
    this.Name = name;
  }
}

Деструкторы

Деструктор — метод, который отрабатывает при уничтожении объекта. В .Net они называются финализаторами. Объявляется финализатор следующим образом:

class Animal
{
  ~Animal()
  {
    
  }
}

Учитывая наличие в .Net сборки мусора, писать деструкторы нужно крайне редко.

Абстрактные классы в C#

Абстрактные классы — такие классы, экземпляры которых создавать нельзя. Но можно создавать экземпляры их потомков.
Абстрактные классы могут содержать абстрактные методы, т.е. методы без реализации. Нельзя объявить неабстрактный класс с абстрактным методом.
Объявляются такие классы с помощью ключевого слова abstract

public abstract class Animal
{
  ...
}

Статические классы в C#

Статические классы — это такие классы, экземпляры которых не могут быть созданы. Объявляются с использованием ключевого слова static.

static class Animal
{
  ...
}

Статические могут содержать только статические методы.