用??简化if else(附带VS2010性能测试)

这里简单写下C# 的??运算符   本来这个简单的运算符没什么好说的 但这里做了下性能测试~~  就自娱自乐的写出来  主要写下VS2010性能测试的用法~

先看下MSDN的介绍  http://msdn.microsoft.com/zh-cn/library/ms173224.aspx

先贴四个方法 字符串类型 和值类型  一般处理和 用??简化if else的处理 

因为自娱自乐 随便写写  请原谅我的命名不规范吧 

/// <summary>
/// 传统的字符串类型
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
private string Test1(string s)
{
if (s == null)
{
return "为null";
}
else
{
return s;
}
}

/// <summary>
/// ??的字符串类型
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
private string Test2(string s)
{
return s??"为null";
}


private int? Test3(int? i)
{
if (i == null)
{
return 0;
}
else
{
return i;
}
}

private int? Test4(int? i)
{
return i ?? 0;
}
 
static void Main()
{

Program p
= new Program();
Console.WriteLine(
"开始");

//测试字符串都为空时
Console.WriteLine(p.Test1(null));
Console.WriteLine(p.Test2(
null));
//测试字符串有值时
Console.WriteLine(p.Test1("123"));
Console.WriteLine(p.Test2(
"123"));

Console.WriteLine(
1);
//测试Int都为空时
Console.WriteLine(p.Test3(null));
Console.WriteLine(p.Test4(
null));

//测试Int有值时
Console.WriteLine(p.Test3(1));
Console.WriteLine(p.Test4(
1));
}

OK  就这些  现在说下重点的 用VS2010 的性能测试 

首先点 分析----探查器-----新建性能会话   然后启动分析 

效果图如下



 上面这个是非独占字节数 

具体用法和分析  参考MSDN  http://msdn.microsoft.com/zh-cn/library/2s0xxa1d.aspx

这个?? 有一点很不爽  只能去掉null 不能去掉“”  而我们真实的项目里一般是 string.IsNullOrEmpty 用这个 这样的话 string类型还是要加上if else的

ps:  三目运算符 和?? 都能简化 if else  但是可读性不高  能让人读懂的代码 才是最好的~~

posted on 2011-06-29 08:12  wlf  阅读(1462)  评论(0)    收藏  举报