Ключевое слово class
Ключевое слово class объявляет ссылочный тип.
Экземпляр создают через new, переменная
хранит ссылку на объект в куче. Несколько переменных могут
указывать на один объект - изменение через одну ссылку видно
через другую. В отличие от struct,
копирование ссылки не создаёт новый объект.
Синтаксис
class Имя
{
// поля, свойства, методы
}
Пример
Давайте создадим класс с полем и методом:
using System;
class Counter
{
public int Value;
public void Add(int delta)
{
Value += delta;
}
}
class Program
{
static void Main()
{
var counter = new Counter();
counter.Add(5);
Console.WriteLine(counter.Value);
}
}
Результат выполнения кода:
5
Пример
Давайте проверим, что две ссылки указывают на один объект:
using System;
class Box
{
public string Text;
}
class Program
{
static void Main()
{
var first = new Box { Text = "abcde" };
var second = first;
second.Text = "12345";
Console.WriteLine(first.Text);
}
}
Результат выполнения кода:
"12345"
Пример
Давайте сохраним список в поле класса:
using System;
using System.Collections.Generic;
class Holder
{
public List<int> Nums = new List<int> {1, 2, 3, 4, 5};
}
class Program
{
static void Main()
{
var holder = new Holder();
Console.WriteLine(holder.Nums.Count);
}
}
Результат выполнения кода:
5