C#影响代码性能
常见的优化写法
一、 代码的精简优化
1、空操作符(??)替代?
private void LoadDetail(string strWhere, string strUserPower)
{
strWhereM = string.Empty;
if (!string.IsNullOrEmpty(strWhere.Trim()))
strWhereM += (string.IsNullOrEmpty(strWhereM.Trim()) ? \\
可以优化成:
推荐一个扩展方法来过滤掉null和空格,使返回的结果可以更好的使用??操作符 public static string TrimToNull(string source) {
return string.IsNullOrWhiteSpace(source) ? null : source.Trim(); }
private void LoadDetail(string strWhere, string strUserPower) {
strWhereM = string.Empty;
if (!string.IsNullOrEmpty(strWhere.Trim()))
strWhereM = TrimToNull (strWhereM) ?? : strWhereM; }
其他模块有的可以CTRL+F或CTRL+H(替换为这个公用方法)
2、实体类使用自动属性
public string ExcelFilename{ get { return _strExcelFilename; } set
}
{ }
_strExcelFilenam=value;
可以优化成:
public string ExcelFilename{get;set;}
3、隐身类型VAR
List
IEnumerable
可以优化成:
使用var关键字在我们使用泛型或是Linq表达式时会提供更好的可读性 Var formatterContainers = new List
二、 代码的性能优化
1、尽量用foreach循环 xxx.length,初始化常量
for (int i = 0; i < cols.Length; i++)
{
var Column = cols[i]; }
可以优化成:
Int colLen=col.length; For(int i=0;i var Column = cols[i]; } 其他模块有的,可以CTRL+F 2、避免不必要的ToUpper或ToLower if (SessionAuth.UserID.ToUpper() == \ == \ { btn_JFJS.Enabled = true; btn_JFJS.Visible = true; } else { btn_JFJS.Enabled = false; btn_JFJS.Visible = false; } 可以优化成: if(String.Compare( SessionAuth.UserID,”SUPER-04”,true) == 0 || String.Compare(SessionAuth.UserID,”SUPER-04”,true) == \{ btn_JFJS.Enabled = true; btn_JFJS.Visible = true; } } //注释String.Compare(SessionAuth.UserID,”SUPER-04”,true) ,true表示忽略大小写 其他模块有的,可以CTRL+F 3、最快空串比较法 if (strCriteria.Trim() == \ { strCriteria = \ } 可以优化成: if (strCriteria.length == 0) { 其他模块有的,可以CTRL+F 还有以下常用情况 1、 不要改变的变量,用常量声明 2、 尽量用foreach循环代替for循环 3、 类型判断 推荐以下写法,既保证性能又比较好写,不推荐用GetType(),因为它比较耗时间 IConvertible conv = obj as IConvertible; if (conv != null) { switch (conv.GetTypeCode()) { case TypeCode.Boolean: break;
c#影响代码性能的常见优化写法



