我的代碼與if
- else
非常混亂,如果檢查正在進行。分支和嵌套分支的數量非常大(如果超過20個 - 否則如果嵌套也是如此)。這使得我的代碼更難以閱讀,並可能會成爲一個表現豬。對於很多從用戶等應用程序獲取條件,我的應用程序的檢查必須檢查所有的時間針對不同的情況,例如:嵌套'if' - 'else'語句
如果文本框中的文本不爲0,繼續下一個...
if ((StartInt != 0) && (EndInt != 0))
{
然後在這裏它檢查用戶是否已經選擇日期:
if ((datePickerStart.SelectedDate == null) || (datePickerEnd.SelectedDate == null))
{
MessageBox.Show("Please Choose Dates");
}
在這裏,如果datepickers不爲null,則繼續代碼...
else if ((datePickerStart.SelectedDate != null) && (datePickerEnd.SelectedDate != null))
{
// CONDITIONS FOR SAME STARTING DAY AND ENDING DAY.
if (datePickerStart.SelectedDate == datePickerEnd.SelectedDate)
{
if (index1 == index2)
{
if (StartInt == EndInt)
{
if (radioButton1.IsChecked == true)
{
printTime3();
}
else
{
printTime();
}
}
這只是檢查的一小部分。其中一些是功能,一些是輸入驗證的東西。
有沒有什麼辦法讓它更具可讀性和更少的性能豬?
也許你應該在方法或事件前面進行驗證,如果你正在做它,就像(dtp.SelectedDate == null)return;比繼續進行信息處理。 – Burimi
我有一個強烈的感覺SelectedDate是從日曆控件,這些永遠不能爲空,你需要檢查'datePickerStart.SelectedDate == DateTime.MinValue'。 –
代碼運行良好,這不是我的問題。如果((StartInt!= 0)&&(EndInt!= 0)&&(EndInt!= 0)這個複雜的可讀性和性能如此分支 – Yosi199