zoukankan      html  css  js  c++  java
  • 编写有效的C# 代码(一)

           最近,一位在和一位同学交流的时候,他让我看看他的代码情况,我看了许久,逐步记录了一些,现在慢慢总结出来,与大家分享,编写有效的C#代码很重要,虽然我们平时写的时候只管实现,但是在面向大型的项目或者参与国际开源项目的时候,经常会遇到有效的C#问题。今天列举几个,供大家参考。

           第一:ToString() 很好,但是就这样?

           我们常常喜欢用ToString()进行格式化转换,将对象表达为字符串形式,但是如何应用有效呢?举个例子:获取当前时间:System.DateTime.Now.ToString() 这是我们太习惯不过的代码了,但是里面至少有两处问题。1)"System." 是冗余代码,因为一般命名空间中都添加了Using System; 2) ToString() 缺少获取不依赖于区域性(固定)的CultueInfo。你觉得呢?亲...

           第二:三目运算符?更简洁?

           以前我们习惯用If..else..来做判断,后来用三目运算符来简化if...else...甚至替代,但是有比三目运算符更简洁的吗?当然有的情况下还是有的,举个例子:

         if(a>b)
             {return true ;}
          else
             {return function();}//function() 是一个执行返回参数为bool类型的值

           用三目运算符表达:return  (a>b?true:function)

           更简单的方法:return b>=a  &&  function()

           你觉得是这样吗?亲...(当然从执行效率上三目是最高的)

           利用VS2010的度量分析:采用if..else..时候:

                                   

           采用三目和上面的表达式时:

                                  

           第三:为什么不用Linq?还在foreach 吗? 

           我们都知道foreach 是在for循环上的一种有效改进,但是Linq的出现,难道我们不能再改进吗?举个例子:

        string result= "";
        foreach (string s in strList)
         {
            result+= s;
         } 
     

           上述代码很简单,但是我们是否可以这样?

        string pat = strList .Aggregate("", (current, s) => current + s); 

            我们常常忽视了好多,我们并没有追求什么完美,但是代码要是让我们产生厌恶感,你还那样写代码吗?后面我也将陆陆续续更新更多...

  • 相关阅读:
    高级(线性)素数筛
    Dijkstra(迪杰斯特拉)算法
    简单素数筛
    【解题报告】 POJ1958 奇怪的汉诺塔(Strange Tower of Hanoi)
    4 jQuery Chatting Plugins | jQuery UI Chatbox Plugin Examples Like Facebook, Gmail
    Web User Control Collection data is not storing
    How to turn on IE9 Compatibility View programmatically in Javascript
    从Javascrip 脚本中执行.exe 文件
    HtmlEditorExtender Ajax
    GRIDVIEW模板中查找控件的方式JAVASCRIPT
  • 原文地址:https://www.cnblogs.com/liufanping/p/2432220.html
Copyright © 2011-2022 走看看