# 第三章_函式_案例分享 ###### tags: `讀書會` ==↓原始Code當天再分享↓== ## goto ```csharp public Result CheckRequest(MerchantReq request) //CheckRequest 會呼叫 SetResult public Result SetResult(MerchantReq request, string transMsg) ``` ## switch case & TransMsg * 這個switch case是跟其他驗證(白名單、驗證訂單...)放在同個層級,而其他驗證都是放在Service裡的方法,感覺滿突兀。 * 這個switch case做的事: 根據不同付款方式做對應的驗證 * 包成方法: ```csharp public PaymentResul ChooseVerifyType(PaymentTypeEnum paymentType) ``` * TransMsg是寫死的,讓往後無法重複使用也不好維護。 ## SetTransCode方法 * 將上面switch case裡的TransMsg包裝成方法 * 建立resx檔紀錄ErrorCode跟對應的訊息 ## for迴圈 * 看到一個很有趣的for迴圈(雖然跟這週主題無關),我也不知道這樣的寫法是好還是不好,但覺得很不直覺。 * 雖然是for迴圈但只會執行一圈,會有兩種狀況: 1. 遇到檢核不通過rtnCode的值會改變(不等於1),continue不會執行之後的程式碼,進入下一個迴圈,此時rtnCode不等於1,離開迴圈。 2. 所有檢核都通過,開始下一迴圈前會將stopCheck改為true,不符合迴圈執行條件(stopCheck == false),離開迴圈。