Q-->question        A-->answer        M-->mention
          The Chapter 11st  Char,String,Text

M:在.NET Framework中,字符总是表示为16位Unicode码.

Q:有何方法可实现各种数值类型与Char实例的转换?
A:1.强制类型转换,其效率最高
  2.使用convert类型,用System.Convert类型的静态方法可以实现,但都是以checked来执行的,一旦发生数据丢失就会抛出一个overflowException
  3.使用IConvertible接口,但不建议,因为调用接口中的方法,如ToUint16会引发装箱,所以效率低下

M:字符串为引用类型,其最重要的事实就是=>它是不可变的(immutable),再一个就是它不能用常量来构造,它的字符数组位于堆上,而不是线程堆栈上.

M:比较字符串时,应该尽量调用String自定义的Equals()等,而避免使用==或!=,因为其不易读懂和维护.使用其中Comparison.Ordinal效率最高,因为其先比较个数,不等就直接返回
  string s1 = "AAA";
            string s2 = "BBB";
            Console.WriteLine(s1.Equals(s2,StringComparison.Ordinal));

M:字符串留用=>String.Intern(),String.Interned(),这个方法构造的字符串,会在CLR初始化的内部哈希表中进行留用.因此以后每一个相等的字符串引用都将指向此地址,在有些时候此功能是很有用的(比如大量重复比较)

Q:每个线程都有哪两个特殊的属性?
A:1.CurrentUICulture  获取向用户显示的资源
    2.CurrentCulture    用于前者不合适的场合,如日期等..

posted on 2007-06-11 11:08  晓木  阅读(172)  评论(0编辑  收藏  举报