Существует ли способ иметь c# предупреждения дисплея компилятора, когда оператор переключения действительно имеет необработанные случаи?

Ваш запрос колеблется, он должен выглядеть примерно так

UPDATE student_subject 
INNER JOIN subject_bsit 
ON subject_bsit.subject_id = student_subject.sub_id 
SET grade=? 
where student_subject.student_id='" & Txtbox.Text & "' AND student_subject.sub_id = 1
.
9
задан Brann 2 April 2009 в 08:33
поделиться

3 ответа

Нет, нет ничего на языке для проверки этого.

У Вас может быть a:

default:
    throw new ArgumentOutOfRangeException("Invalid value or bug");

случай, но очевидно это - время выполнения, а не время компиляции.

2
ответ дан 4 December 2019 в 21:51
поделиться

Никогда не использовал его, но FxCop может быть полезным. Это поддерживает пользовательские правила записи. Конечно, это не проверка времени компиляции, но что-то, что может быть интегрировано в Ваши процессы.

1
ответ дан 4 December 2019 в 21:51
поделиться

К сожалению, вот не функция компилятора, чтобы сделать это для Вас.

Вместо того, чтобы иметь перечисление, имейте базовый класс или интерфейс. MyMethod определяется в интерфейсе.

Каждый каждый перечислимый участник теперь становится классом с различным поведением для myMethod. Если бы Вы добавляете класс (для расширения опций, в настоящее время Вы добавляли бы перечислимый объект), но не реализуйте myMethod, Вы получите ошибку компилятора.

наличие большого количества места в коде, где Вы обеспечиваете другое поведение в избранных операторах, является запахом, что Вы, возможно, должны использовать полиморфизм.

Править

Лучший совет, который я могу дать, состоит в том, чтобы создать модульные тесты на каждую функцию, которая полагается на оператор переключения, и назовите его для каждого значения в перечислении (можно получить значения во времени выполнения с членом GetValues на Классе Enum),

6
ответ дан 4 December 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: