測試使用的環境:vs2019+.net core3.1
原文地址:https://www.cnblogs.com/hhhnicvscs/p/14296715.html
反駁第一條:如何檢查程式碼中的空字串?
調整順序後輸出,如下圖:
上圖調整順序後,發現耗時排序發生了逆轉。為什麼?自行研究。
using System; using System.Diagnostics; namespace ConsoleApp1 { public class Compare { public static void First(string Value) { if (Value.Length != 0) { } } public static void Second(string Value) { if (Value != "") { } } public static void Third(string Value) { if (Value != string.Empty) { } } } class Program { static void Main(string[] args) { Stopwatch sw = new Stopwatch(); sw.Start(); Compare.Third("weuroovnuifbbno"); sw.Stop(); Console.WriteLine("Using Empty: " + sw.ElapsedTicks); sw.Restart(); Compare.Second("weuroovnuifbbno"); sw.Stop(); Console.WriteLine("Using != " + sw.ElapsedTicks); sw.Restart(); Compare.First("weuroovnuifbbno"); sw.Stop(); Console.WriteLine("Using Length: " + sw.ElapsedTicks); Console.WriteLine("---------------"); sw.Restart(); Compare.First("joigjoerjgiogro"); sw.Stop(); Console.WriteLine("Using Length: " + sw.ElapsedTicks); sw.Restart(); Compare.Second("joigjoerjgiogro"); sw.Stop(); Console.WriteLine("Using != " + sw.ElapsedTicks); sw.Restart(); Compare.Third("joigjoerjgiogro"); sw.Stop(); Console.WriteLine("Using Empty: " + sw.ElapsedTicks); Console.ReadLine(); } } }
反駁第二條:更改你的型別轉換風格
同樣的對順序進行調整,如下圖:
結果如圖,我也不說什麼了。
至於剩下的,自己慢慢試吧。
最後,網上的文章,不要盡信之,最好是自己能夠實踐一下,這樣才能去其糟泊取其精華,別讓自己誤入歧途。
補充
第一條的基準測試結果