發表文章

目前顯示的是 6月, 2023的文章

正規表示式 Regular Expression

  簡單說明:

Javascript var 與 let / const 差異

  var 是函式作用域,let / const 是區塊作用域 var 允許重複宣告,let / const 會出錯 “ const ”— 一般使用在識別值(identifier)不會被重新指定值。例如:宣告恆定不做改變的變數 — const PI = 3.14159。這也意味著,const在宣告變數時就會進行初始化,無法等到之後再賦予值,因此必定要在一開始就給予值作宣告,否則將會報錯。 “let”— 一般使用在變數(variable)可能會被重新指定值。例如:在迴圈(for loop)中,一開始的變數宣告使用。也可以說較常使用在函式(function)自行定義的區塊(block)中,例如:迴圈(for loop)或者邏輯、數學等演算法括弧({} or ())中作宣告使用,而不會存在並使用於整個函式(function)中。 “var”— 在ES6推出“let”宣告方法後,JavaScript最弱的變數宣告,使用在變數可能或不會被重新賦予值,或者宣告範圍在整個函式(function)或者區塊(block)中。 ref Web: https://www.programfarmer.com/articles/2020/javascript-var-let-const-for-loop https://totoroliu.medium.com/javascript-var-let-const-%E5%B7%AE%E7%95%B0-e3d930521230

MVC 讓Entity Framework啟動不再檢查__MigrationHistory表

 Framework中DbContext首次加載OnModelCreating會檢查__MigrationHistory表,作為使用Code Frist編程模式,而實際先有數據庫時,這種檢測就是多餘的了,所以需要屏蔽,在EF 4.1之前可以使用在OnModelCreating函數總加入下面語句來屏蔽這種檢測: modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); 而到4.3之後需要使用,上列語句以被MSDN明確表示過時,所以需要新的方式取代: Database.SetInitializer<DBContext>(null); ref web:https://blog.csdn.net/liunianqingshi/article/details/70577734

[C# Lambda] 依資料Group某欄位數量

C# lamba List<object>, 其中object class有4個欄位, 分別為A,B,C,D, 其中A,B,C為string, D為int, 如何將A,B,C為條件進行Group by取得加總D的結果 class Program {     static void Main()     {         List<MyObject> objects = new List<MyObject>         {             new MyObject { A = "A1", B = "B1", C = "C1", D = 10 },             new MyObject { A = "A1", B = "B1", C = "C2", D = 20 },             new MyObject { A = "A2", B = "B2", C = "C1", D = 30 },             new MyObject { A = "A2", B = "B2", C = "C2", D = 40 },             new MyObject { A = "A2", B = "B3", C = "C3", D = 50 }         };         var groupedObjects = objects             .GroupBy(obj => new { obj.A, obj.B, obj.C })             .Select(group => new             {                 group.Key.A,                 group.Key.B,                 group.Key.C,                 SumD = group.Sum(obj

Class資料複製 (ShallowCopy)(淺層複製)

void Main() { ClassData a = new ClassData() { Class_1="11", Class_2="22" }; ClassData b = a.ShallowCopy();  //淺層複製(Shallow Copy) 複製值 ClassData c = a;  //複製參考 a.Class_1="AA"; string result_B = $"B.Class_1='{b.Class_1}'";  //-->11 string result_C = $"C.Class_1='{c.Class_1}'";  //-->AA result_B.Dump(); result_C.Dump(); } class ClassData { public string Class_1 { get; set; } public string Class_2 { get; set; } public ClassData ShallowCopy() { return (ClassData)this.MemberwiseClone();  //複製值, 而非reference } } 顯示結果: B.Class_1='11' C.Class_1='AA'

常見的 Windows 字型中,具有英文和數字等寬特性的字型

以下是一些常見的 Windows 字型中,具有英文和數字等寬特性的字型: Consolas:Consolas 是一款受到廣泛使用的等寬字型,它在 Windows 系統中預設安裝並且常用於程式碼編輯器中。 Courier New:Courier New 是另一種常見的等寬字型,廣泛用於程式碼和文字檔案的顯示。 Lucida Console:Lucida Console 是一款較為輕巧的等寬字型,通常用於程式碼編輯器和終端應用程式。 Consolas Bold:Consolas Bold 是 Consolas 字型的加粗版本,提供更加醒目的效果。 Droid Sans Mono:Droid Sans Mono 是一款 Google 字型,具有等寬特性,適合用於程式碼和文本編輯。 Inconsolata:Inconsolata 是另一種廣受歡迎的開源字型,專為程式碼閱讀而設計。 Source Code Pro:Source Code Pro 是由 Adobe 所開發的一款等寬字型,專為程式碼編寫而設計,具有良好的可讀性。 這些字型通常可以在 Windows 系統中找到,並且在程式碼編輯器和其他文字編輯應用程式中廣泛使用。