你好,结果是相同的。做个测试。
string a="";
string b=String.Empty;
Console.WriteLine(a.Equals(b));
返回的是True
******************************************
lucky0504说的没错。
因为String s = "";
这个""相当于new了一个实例,再把这个实例赋值给s,也就是说这句话引用了两个实例。
用String.Empty比""好的多。
******************************************
如果朋友不信,我们可以再来做一个测试,代码如下。
static void Main(string[] args)
{
String CountStr1;
String CountStr2;
DateTime dateStr1 = System.DateTime.Now;
for (int i = 0; i < 9999999; i++)
CountStr1 = "";
DateTime dateStr2 = System.DateTime.Now;
long StrResult = dateStr2.Millisecond - dateStr1.Millisecond;
Console.WriteLine("用引号赋值9999999次耗时:" + StrResult.ToString() + "耗秒。");
DateTime dateInt1 = System.DateTime.Now;
for (int i = 0; i < 9999999; i++)
CountStr2 = String.Empty;
DateTime dateInt2 = System.DateTime.Now;
long IntResult = dateInt2.Millisecond - dateInt1.Millisecond;
Console.WriteLine("用String.Empty赋值9999999次耗时:" + IntResult.ToString() + "耗秒");
Console.ReadLine();
}
一个简单的测试,看赋值""和引用静态String.Empty所用的耗时,如果没效果,就把9999999改大点。(这里我直接用耗秒计算,没有对耗秒1000变一秒的地方进行处理,但也能看见明显的效果) 19256希望对你有帮助!
参考资料:. vjykjti
本回答被提问者采纳