iT邦幫忙

0

想請問這兩段程式怎麼如何寫成一個方法

c#

是這樣的 我這兩段程式重複性頗高,想把它變成一個方法,但是我太會變
能否幫我變成一個方法來讓我參考?謝謝。

程式一

   string[] hdmethod = model.HD_METHOD.Split(',');
            foreach (string i in hdmethod)
            {
                model.HD_METHODS.Add(i);
            }
            string[] hdfreq = model.FREQ.Split(',');
            foreach (string i in hdfreq)
            {
                model.FREQS.Add(i);
            }

程式二

 
                dto.Name = _repo.EMPLOYEE.Where(x => x.CID == dto.CID && x.EMP_ID == dto.NOTICE_EMP_ID).FirstOrDefault<EMPLOYEE>().EMP_NAME;               
             
                dto.Source = _repo.NCODE.Where(x => x.CID == dto.CID && x.NC_ID == NcId.PatSourceList && x.NC_CODE == dto.PAT_SOURCE).FirstOrDefault<NCODE>().NC_NAME;             
             
                dto.PatName = _repo.PATIENT.Where(x => x.CID == dto.CID && x.GUID == dto.PAT_GUID).FirstOrDefault<PATIENT>().PAT_NAME;
米歐 iT邦新手 3 級 ‧ 2018-12-25 10:40:06 檢舉
程式一 可以考慮用 AddRange 取代 Add
優悠 iT邦新手 3 級 ‧ 2018-12-25 10:52:37 檢舉
程式二很容易出錯,一旦找不到呈現NULL時,就不能 .PAT_NAME; 了。
方法有輸出跟輸入,用各這想法,你的子程式碼就該有承接 變數輸入 與 輸出的行為
用這個角度去定義方法,然後輸入變數給你設定好的方法讓他輸出你要的結果
至於如果輸入的變數有問題,你也可以在方法寫好除錯的方式
大概就這樣
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
oeoeoecs
iT邦新手 5 級 ‧ 2019-01-25 15:25:59
最佳解答

程式一:

寫一個Function處理解字串及加入List功能如下:

public void AddModeList(string splistString,char separator,List<string> addList)
{
   string[] stringList = splistString.Split(separator);
   foreach (string i in stringList)
   {
       addList.Add(i);
   }
}

使用時如下:

AddModeList(model.HD_METHOD,',',model.HD_METHODS);
AddModeList(model.FREQ,',',model.FREQS);

處理重複一件事情的方式概念都差不多,
以上的程式只是簡單的範例給你參考,希望以上對你有幫助。

我要發表回答

立即登入回答