Структуры имеют те же самые ограничения на время жизни, что и простые переменные типы данных. Структуры не поддерживают наследование.
Оператор 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 для того, чтобы избежать потерь производительности, связанных с копированием данных