Имхо, это очень плохая идея.
Структуры в C # являются типами значений. C # налагает ряд ограничений, чтобы гарантировать, что все поля структуры инициализируются:
- Конструкторы по умолчанию не допускаются.
- Конструкторы должны инициализировать все поля в структуре.
Если вы не создаете экземпляр структуры через конструктор, тогда все члены устанавливаются в результат вызова default()
для типа члена. Это позволяет использовать структуры в массивах. Это также позволяет вам делать то, что вы делаете, но также является причиной предупреждения.
В идеале вы должны определить конструктор и инициализировать структуру с помощью конструктора.
Редактировать: Чтобы прояснить ограничение для конструктора по умолчанию (без параметров), вы не можете явно определить его, поскольку компилятор предоставляет тот, который он использует для инициализации всех членов.