好文档 - 专业文书写作范文服务资料分享网站

c#影响代码性能的常见优化写法

天下 分享 时间: 加入收藏 我要投稿 点赞

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 formatterContainers = new List();

IEnumerable batchRows, rows = obTable_Pnt.Select();

可以优化成:

使用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;

7rs257ncqo7f1wl0kik6
领取福利

微信扫码领取福利

微信扫码分享