Когда мы пишем
Все кто читает этот код ожидает, что в value будет либо No либо Yes.
Введение неявных элементов перечисления нехорошо. Ибо по объявлению переменной становится непонятно, что собственно туда может попасть.
Более того, получается, что мы врем - говорим что там может быть либо No либо Yes, а там может оказаться что-то другое.
Правильнее, по-поему сделать либо так
Либо так:
X++:
NoYes value;
NoYes valueIsEmpty;