C#代码优化

 

 

1.字符串判断是否为空

很多人都喜欢用字符串直接判断,比如一个变量:string str = "";if( str != "" )这样

其实直接使用 if( str.Length == 0 )来判断效率更快,当然最好还是使用微软封装好了的string.IsNullOrEmpty(string value)函数

我们可以利用反编译工具来看看这个函数的具体实现:

public static bool IsNullOrEmpty(string value)
{
    if (value != null)
    {
        return (value.Length == 0);
    }
    return true;
}

 

 

2.尽量使用AS转换类型

在C#中,很多人都会这样子写来转换类型:

if (Student is People)
{
    var s1 = (People)Student;
    // s1 do something
}

这样的话整个过程就进行了两次转换操作,降低了性能 如果是在循环中效果更为明显。

所以我们可以使用AS来转换,AS的规则是:将一个类型转换为另一个类型,如果成功那就成功了呗,如果失败返回NULL:

var s1 = Student as People;
if (s1 != null)
{
    // s1 do something
}

 

 

3.隐式类型VAR

隐式类型并不是动态类型,它只是用var来定义而已,相当于一个占位符,它会在编译期推断真正的类型,var定义的类型任然是强类型

举个简单的linq例子  一下就能看出来

//显示类型
IEnumerable<IGrouping<string, Product>> results2 = 
    from p in products where p.Value > 100 group p by p.Category
//隐式类型
var results1 = from p in products where p.Value > 100 group p by p.Category;

大家可能只是觉得不就是声明的类型不同而已吗?

好吧,以前有一次我想用linq来对对象进行分组查询,可是我不知道使用group by之后返回的类型是个什么东西,只知道可以循环它点出查询后的信息 

所以就去MSDN查了一会才知道IEnumerable<IGrouping<x, y>>的用法,但是如果直接用var  你就省去了这一步骤,并且在语法上也简洁了许多

 

posted @ 2013-04-16 01:21  韬韬韬你羞得无礼  Views(275)  Comments(0)    收藏  举报