Looking for c# Keywords? Try Ask4Keywords

C# Language структура


пример

Тип struct тип значения, который обычно используется для инкапсуляции небольших групп связанных переменных, таких как координаты прямоугольника или характеристики элемента в инвентаре.

Классы - это ссылочные типы, structs - типы значений.

using static System.Console;

namespace ConsoleApplication1
{
    struct Point
    {
        public int X;
        public int Y;

        public override string ToString()
        {
            return $"X = {X}, Y = {Y}";
        }

        public void Display(string name)
        {
            WriteLine(name + ": " + ToString());
        }
    }

    class Program
    {
        static void Main()
        {
            var point1 = new Point {X = 10, Y = 20};
            // it's not a reference but value type
            var point2 = point1;
            point2.X = 777;
            point2.Y = 888;
            point1.Display(nameof(point1)); // point1: X = 10, Y = 20
            point2.Display(nameof(point2)); // point2: X = 777, Y = 888

            ReadKey();
        }
    }
}

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


Некоторые предложения от MS о том, когда использовать struct и когда использовать класс:

РАССМАТРИВАТЬ

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

ИЗБЕЖАТЬ

определяя структуру, если тип имеет все следующие характеристики:

  • Он логически представляет одно значение, подобное примитивным типам (int, double и т. Д.),
  • Он имеет размер экземпляра до 16 байт.
  • Это неизменно.
  • Его не нужно часто вставлять в бокс.