判断字符串空值的性能影响

有多种方法可以判断一个字符串是否为空(字符串为空,并不是null值),如string.IsNullOrEmpty();string!=null && string.Length==0;string!=null && string.Equals("");string!=null && string=="";通过下面的程序比较一下性能
 1 using  System;
 2 using  System.Collections.Generic;
 3 using  System.Text;
 4 using  System.Diagnostics;
 5
 6 namespace  ConsoleApplicationDemo1  {
 7    class StringIsEmpty {
 8        
 9        static void Main(string[] args) {
10            for (int i = 0; i < 10; i++{
11                TestStringLength();
12                Console.WriteLine("");
13            }

14            Console.Write("Press any key to exit");
15            Console.ReadKey();
16        }

17
18        private static void TestStringLength() {
19            string s = "jerrychen";
20
21            Stopwatch sw = new Stopwatch();
22
23            sw.Reset();
24            sw.Start();
25            for (int i = 0; i < 100000000; i++{
26                if (!string.IsNullOrEmpty(s)) {
27                    //do nothing
28                }

29            }

30            sw.Stop();
31            Console.WriteLine(sw.ElapsedMilliseconds);
32
33            sw.Reset();
34            sw.Start();
35            for (int i = 0; i < 100000000; i++{
36                if (s != null && s.Length > 0{
37                    //do nothing
38                }

39            }

40            sw.Stop();
41            Console.WriteLine(sw.ElapsedMilliseconds);
42
43
44            sw.Start();
45            for (int i = 0; i < 100000000; i++{
46                if (s!=null && s.Equals("")) {
47                    //do nothing
48                }

49            }

50            sw.Stop();
51            Console.WriteLine(sw.ElapsedMilliseconds);
52
53            sw.Reset();
54            sw.Start();
55            for (int i = 0; i < 100000000; i++{
56                if (s!=null && s==""{
57                    //do nothing
58                }

59            }

60            sw.Stop();
61            Console.WriteLine(sw.ElapsedMilliseconds);
62        }

63    }

64}

通过比较发现性能依次如下:
string.IsNullOrEmpty(s)优于
s != null && s.Length > 0优于
s!=null && s.Equals("")优于
s!=null && s==""
判断是否为null值,否则当字符串为null时,抛出“未将对象引用到对象的实例异常”

你可能感兴趣的:(字符串)