原创 變量初始化方式
提問 如何初始化字段 回答 使用構造函數初始化字段; 不要使用函數初始化字段; 不要使用函數初始化字段; 不要使用函數初始化字段;
原创 多個泛型如何設置約束
提問 多個泛型如何設置約束 回答 public abstract class HandleBase<Req,Ack> where Req:RequestInfoBase where Ack : AckInfoBase 補充 泛型優點 避免
原创 Serilog實戰
提問 快速上手Serilog步驟 回答 引用 Serilog.Sinks.Async Serilog.Sinks.File Serilog.Sinks.Console 2.配置 appsetting.sjon 加入如下項 "Seri
原创 整潔代碼格式
提問 整潔代碼格式如何實現 回答 一個文件行數不超過1屏; 一行代碼字符數不會超過IDE寬度; 嵌套層深不超過2; 條件判斷/if裏只有一行; 循環for/foreach/裏只有一行; 不要嵌套異常; if裏不要寫表達式;
原创 什麼是枚舉標誌
提問 回答 C#中的標誌枚舉 標誌枚舉在聲明枚舉前加[flag] 枚舉值一般用2的N次方(1 2 4 8......) 不能(1 2 3)因爲標誌每組可以自由組合 1+2=3 就衝突了 下面將其十進制轉化成爲二進制說明就可以明白點 [Fla
原创 代碼整潔之道-註釋
提問 代碼整潔之道-註釋該怎麼寫 回答 WebApi接口寫註釋 實體寫註釋,標記example 方法不超過100行,自描述
原创 WebApi xUnit實戰
提問 如何順利開始第一個xUnit,有哪些點需要注意 回答 Mock的接口,假如是類則方法爲Vitual; Mock類注意構造函數的Mock,不要只Mock無參的; WebAPI獲取Action的值需要通過as轉換as OkObjectR
原创 如何使用ASP.NET Core 中的響應緩存中間件
提問 ASP.NET Core 中的響應緩存中間件 回答 緩存條件 請求必鬚生成帶有 200 (OK) 狀態代碼的服務器響應。 請求方法必須是 GET 或 HEAD。 響應緩存中間件必須放置在需要緩存的中間件之前。 有關詳細信息,請參閱
原创 HttpClient如何注入時配置 基礎地址、Token
提問 HttpClient如何注入時配置 基礎地址、Token 回答 services.AddHttpClient<GenericScadaClient>() .ConfigureHttpClient(client
原创 如何驗證名稱只能包含英文字母、中文、數字和下劃線,且僅以英文字母或中文開頭
提問 如何驗證名稱只能包含英文字母、中文、數字和下劃線,且僅以英文字母或中文開頭 回答 [RegularExpression(pattern: @"^(?![0-9])(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+
原创 可測試代碼特點
提問 可測試代碼特點有哪些? 回答 函數參數少:沒有或1個; 類構造參數少:沒有或1個; 參數爲基本類型:bool、int、double等;
原创 代碼格式有哪些注意事項
提問 代碼格式有哪些注意事項 回答 垂直格式:代碼行數別太多 橫向格式:代碼別太寬
原创 代碼裏如何try catch
提問 代碼裏如何try catch 回答 使用專門的函數進行try catch;try中只有一行; 參考 反思 這樣會使含數量翻倍,同時做了很多重複工作;我現在設想使用source generator 進行代碼自動生成,在需要try ca
原创 什麼是一元函數
提問 什麼是一元函數 回答 一個參數的函數 延申 使用out 、ref輸出參數是一種讓人困惑的選擇 使用標識參數是讓人害人聽聞的做法,應該拆分爲兩個函數,直到用戶輸入層面 參考
原创 方法參數因該多少個合適
提問 方法參數因該多少個合適 回答 0個是完美的,1個是可以忍受的,3個是要避免d的 總結 參數個數體現了和外界的耦合度,參數越多月不容易控制,包括構造函數參數和方法參數; 所以很多時候因爲構造函數或方法參數很多其單元測試也是難以編寫的;