Я пытаюсь определить структуру, которая использует переменную с ограниченным диапазоном чисел и неявное принуждение от ints. Я хотел бы иметь возможность принудительно строить ошибки сборки, если с этой структурой используются константы или другие жестко заданные значения.
Вот пример того, что я пытаюсь выполнить.
byte a = 123; // Allowed
byte b = 123123; // Not allowed
const int x = 123;
const int y = 123123;
byte c = x; // Allowed
byte d = y; // Not allowed
В идеале я хотел бы иметь возможность, например, ограничить число от 1 до 99, так что MyStruct s = 50; работает, но MyStruct s = 150; вызывает ошибку времени компиляции, такую как байты b и d выше.
Я нашел нечто подобное для другого языка, но не для С#.