zoukankan      html  css  js  c++  java
  • string 最佳实践(C#版) (IS2120@CSDN)

    string 最佳实践(C#版)

    1. 总是初始化string
    1.1 其是一个reftype
    string str; //z null
    string str = string.empty; //z string.empty 在整个app中只有一份实例
    1.2 不要使用””
    string str = “”; //z事实上每次使用都会产生一个新的object;低效。
    //z 2012-2-20 13:44:46 PM IS2120@CSDN

    2. 检查string
    注意区分

    未初始化字符串:null
    空字符串:已初始化(不为null),长度为0
    非空字符串:已初始化,长度不为零

    3. 总是使用静态方法 IsNullOrEmpty 来测试字符串
    string str1;
    string str2 = string.Empty;
    string str3 = “”;
    string str4 = “Hello”;

    string.IsNullOrEmpty(str1) // true
    string.IsNullOrEmpty(str2) // true
    string.IsNullOrEmpty(str3) // true
    string.IsNullOrEmpty(str2) // false

    3.1 if(str != “”) //z 这样会产生一个字符串object
    3.2 IsNullOrEmpty 相当于if (str == null && str.Length == 0)

    构建字符串
    4. 总是使用StringBuilder类来从pieces构建string
    4.1 使用stringbuilder
    StringBuilder result = newStringBuilder();
    result.Append("Hello");
    result.Append(", ");
    result.Append("world!");
    Console.WriteLine(result.ToString());
    这里只会产生一个stringbuilder对象,一个string对象

    //z 2012-2-20 13:44:46 PM IS2120@CSDN
    4.2 不要使用string连接操作(使用Concat 方法或是+ operator)构建字符串
    string result = “Hello” + “,” + “world”;
    Console.WriteLine(result);

    这里会创建四个stringobject:1.Result ;2. “hello”; 3. “,”; 4.”world” 。
    (代价很昂贵,尤其也能够在loop中时;总体积累起来代价可观)

    5. Code style : 总是使用string而不是String
    就如同你不会使用Int32,而总是写int一样。

    //z 2012-2-20 13:44:46 PM IS2120@CSDN
    6. 判断字符串是否相等
    方法1: if(str1.Equals(str2))…
    方法2:if(str1== str2) …
    没有那种方法更好,只是需要注意边际效应
    (比如str1str2为null,那么方法1为抛出异常,而方法2会返回true)
    note:事实上在微软的指导规则与这里不同,那里推荐总是使用Equals方法并明确指定比较规则

    6.1 务请注意
    如果只是比较字符串是否相等,总是使用 Equals,Compare用于排序等

    //z 2012-2-20 13:44:46 PM IS2120@CSDN
  • 相关阅读:
    sqlserver中死锁问题
    sqlserver循环
    自动装箱和拆箱的原理
    资源文件
    SqlServer函数
    PGSql
    SOAP和REST
    Replication
    office等资料下载
    mysql
  • 原文地址:https://www.cnblogs.com/IS2120/p/6745942.html
Copyright © 2011-2022 走看看