天天看點

C#函數程式設計學習

知識補缺

//用Func委托寫簡單函數
Func<int,int> add = i =>  i + 1;

//定義一個隻讀屬性
public class Tea {
  public Tea(int id) => Id = id; 
  public int Id { get; }
}
      

高階函數

即HOF。 接受其他函數作為參數的函數,就是HOF。 js中的map, filter, sort其實都算。linq的where, orderby也是

盡量保持函數的純潔性

純潔的函數天然就是解耦的,而且利于測試。因為純潔的函數不依賴外部環境, 輸入一個值必然輸出對應結果。

一些建議

  • 為了使函數更健壯,接受的參數可以是自定義類,且在類的内部進行資料檢查而不是外部
  • 函數的簽名要寫清楚, 不能隻寫最理想的輸出