Я пытаюсь создать структуру, в которой есть два поля, которые я могу проверить на правильность / недействительность сразу после создания.так как эти два поля по умолчанию 0
, я бы хотел проверить их на недействительность, если они -1
...
public struct InputCodeSet
{
public int primary;
public int secondary;
public InputCodeSet(int primary = -1, int secondary = -1)
{
this.primary = primary;
this.secondary = secondary;
}
public bool IsValid
{
get { return primary > -1 && primary < InputCode.MAX && secondary > -1 && secondary < InputCode.MAX; }
}
}
Однако проверка любого созданного InputCodeSet
приводит к IsValid
всегда является истиной после создания, даже если первичный или вторичный не был установлен.Очевидно, значения по умолчанию в необязательных параметрах конструктора игнорируются?Есть ли другие способы заставить это работать?Я хотел бы использовать в основном синтаксис инициализатора объектов с ними ...
var inputCode1 = new InputCodeSet { primary = InputCode.55 }