Вы возвращаете строковое значение.
Private v_DateOfBirth As Date
Public ReadOnly Property DateOfBirth() As String
Get
Return v_DateOfBirth.ToString("MMMM dd, yyyy")
End Get
End Property
Я рекомендовал бы основной курс в логике высказываний для каждого стремящегося программиста. Сначала, нотация и греческие буквы могут казаться нерасполагающими нерасположенному к математике, но это - действительно один из самых мощных (и часто пропущенный) инструменты в Вашем наборе навыков, и довольно простой, в ядре.
Основные операторы, и другие основные законы de Morgan, таблицы истинности, и существование, например, дизъюнктивые и соединительные нормальные формы были разоблачением мне. Прежде чем я узнал о них, условные выражения чувствовали себя подобно опасным зверям. С тех пор я знаю, что могу хлестать их в представление каждый раз, когда необходимо, вспыхивая тяжелая артиллерия!
Таблицы истинности являются в основном исчерпывающим подходом и (надо надеяться) выделят все возможности.
Вы хотели бы смотреть на Microsoft Pex, которая может быть полезной для определения случаев края, о которых Вы не думали.
Таблицы истинности и модульные тесты - чертят таблицы (n размерный для n переменных) и затем используют их в качестве исходных данных к Вашему модульному тесту, который может протестировать каждую комбинацию переменных и проверить результаты.
Самая большая проблема, которую я видел в течение лет со сложной IFS, состоит в том, что люди не тестируют все ответвления. Удостоверьтесь, что записали тест для каждого возможного ответвления, неважно, как вряд ли кажется ударом его.
Вы могли бы также хотеть попробовать карты Karnaugh, которые хороши максимум для 4 переменных.
Если бы Вы уже не имеете, я высоко предложил бы читать Завершенный Код. Это имеет большой совет относительно тем, таких как это. У меня нет своей копии удобной в данный момент, иначе я отправил бы сводку этого раздела в книге.
Какая-либо причина Вы не можете только обработать логику с защитными операторами?
Разделите логику вниз на дискретные единицы (&& b, и т.д.), каждый с их собственной переменной. Затем создайте их использование логики, в которой Вы нуждаетесь. Назовите каждую переменную с чем-то соответствующим, так, чтобы Ваш сложный оператор был довольно читаем (хотя это может поднять несколько дополнительных строк и справедливое небольшое количество временные переменные).
Карты Karnaugh могут быть хорошими способами взять информацию из таблицы истинности (предложенный Обликом) и превратить их в компактные and/or/not выражения. Они обычно преподаются в курсе цифровой логики EE.
Пробовали ли вы использовать паттерн проектирования? Вы могли бы изучить так называемый паттерн стратегии: http://en.wikipedia.org/wiki/Strategy_pattern