测试代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace cs_6
{
/// <summary>
/// 测试""==myString与0==myString.length的效率问题
/// </summary>
class Program
{
/// <summary>
/// 必须从命令行传入一个数字串参数(表示测试的数据量)
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
int count;
int m=0,n=0;
double Milliseconds1, Millisenconds2;
Stopwatch stopwatch1 = new Stopwatch();
if (0 == args.Length)
{
Console.WriteLine("请传入一个参数!");
Console.ReadKey();
return;
}
if (!int.TryParse(args[0],out count))
{
Console.WriteLine("传入的参数必须为数字串!");
Console.ReadKey();
return;
}
String myString = "";
//“"" == myString”判断的效率
stopwatch1.Start();
for (int i = 0; i < count; i++)
{
if ("" == myString)
{
m++;
}
}
stopwatch1.Stop();
Milliseconds1 = stopwatch1.Elapsed.Milliseconds;
//“0 == myString.Length”判断的效率
Stopwatch stopwatch2 = new Stopwatch();
stopwatch2.Start();
for(int i=0;i<count;i++)
{
if (0 == myString.Length)
{
n++;
}
}
stopwatch2.Stop();
Millisenconds2 = stopwatch2.Elapsed.Milliseconds;
string fomat=@"“"" == str1”判断的效率为:{0},“0 == str1.Length”判断的效率为:{1}";
Console.WriteLine(fomat,Milliseconds1,Millisenconds2);
Console.ReadKey();
}
}
}
测试结果如下: