Принудительная ошибка компилятора C # на основе константного значения - PullRequest
2 голосов
/ 30 октября 2008

У меня есть личный const int, определенный в классе C #. Я хочу, чтобы компиляция завершилась с ошибкой, если значение этого int mod 3! = 0. Как я могу это сделать?

Ответы [ 4 ]

4 голосов
/ 30 октября 2008

Тимоти Хоури почти понял. Должно быть так:

int compilerError = 1 / (MY_CONST % 3 == 0 ? 1 : 0);
2 голосов
/ 30 октября 2008

Хотя существует директива препроцессора # для генерации ошибок во время компиляции, она не может быть основана на существовании значения const. Он работает только с символами компилятора, такими как «DEBUG», для которых значение не может быть назначено.

1 голос
/ 30 октября 2008

Извините, код, который я сказал ниже, не будет работать, но это будет:)

int pointless = 1 / (MY_CONST % 3);

Причина, по которой это сработает, заключается в том, что вы получите время компиляции, ошибка «невозможно разделить на ноль». Ваше поле "MY_CONST" должно быть любым, что (после изменения 3) не будет равно нулю.

0 голосов
/ 30 октября 2008

Попробуйте это:

if (MY_CONST % 3 != 0) { int compilerError = 1 / 0; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...