在桌面/WPF 開發中,我們經常需要在按鈕事件里先判斷“能不能做”,再決定“怎么做”。如果校驗不過,就直接返回;校驗通過,才繼續執行業務邏輯。
今天分享一個極簡寫法:if (!CheckStart()) return;
,只需一行即可把校驗與主流程解耦,讓代碼既干凈又易讀。
一、為什么推薦這種寫法?
省掉嵌套:傳統做法會把全部邏輯包在一層
if
里,縮進越來越深;用return
提前終止,主流程保持“一馬平川”。語義直觀:讀代碼時一眼就能知道——“校驗不過就拉閘”。
復用方便:
CheckStart()
里可以放任何通用規則,比如端口是否已打開
授權是否有效
配置是否完整
需求變了,只改一處即可。
二、示例
事件觸發后,先執行 CheckStart()
進行一次性前置檢查:
若返回
false
,立即中斷流程;若返回
true
,繼續后續主邏輯。
private void Button_RFSwitch(object sender, RoutedEventArgs e)
{// 1. 前置校驗:不通過直接返回if (!CheckStart()) return;// 2. 主流程:切換 RF 開關......
}
CheckStart()
檢查函數的定義
private bool CheckStart(){if (vSG == null){MessageBox.Show("未初始化");return false;}return true;}
三、小結
一行 if (!CheckStart()) return;
,看似不起眼,卻是“防御式編程”的精髓:
早失敗、早返回
邏輯分層、職責單一
代碼更短、可讀性更高
下次寫按鈕事件,不妨試試這個小技巧,讓你的 C# 代碼瞬間清爽起來!