Структуры имеют те же самые ограничения на время жизни, что и простые переменные типы данных. Структуры не поддерживают наследование.
Оператор new для структур действует иначе, нежели для классов и других типов по ссылке, вместо выделения памяти в куче оператор new для структуры вызывает конструктор по умолчанию, который инициализирует все поля своими значениями (заменить его не представляется возможным).
Для структуры можно определить конструктор, но только с параметрами. Нельзя определить конструктор не принимающий параметров. Для структур можно определить методы Dispose() и Close(), однако деструктор Finalize() не поддерживается.
Для структур оператор = = по умолчанию не выполняет ничего.
struct PointStruct
{
public int X, Y, Z;
public PointStruct(int initX, int initY, int initZ)
{
X = initX; Y = initY; Z = initZ;
}
} ...
PointStruct myStruct = new PointStruct(10, 20, 30);
Совет: передавайте структуры как параметры ref для того, чтобы избежать потерь производительности, связанных с копированием данных
