摘要:
数组 所有的数组类型都隐含继承自System.Array,Array本身又继承自Object。 每个数组都有一些额外的负载信息,这些信息包括数组的维数、每一维的最低下限索引、每一维的长度、每一个元素的类型。 交错数组的定义示例: Point[][] myPolygons = new Point[2][]; myPolygons[0] = new Point[10]; myPolygons[1] = new Point[20]; 交错数组与CLS是不兼容的,CLS不允许一个数组的元素类型为Array,所以它不能在不同的编程语言中传递。数组基类Array Array实现了以下几个接口:ICl 阅读全文
摘要:
枚举类型 当编译一个枚举类型时,C#编译器会将其中的每个符号转变为类型的一个常数字段。 枚举类型就是一个定义了一组常数字段的结构而已。这些字段编译后会被存放在生成模块的元数据中,且可以通过反射来访问。 Enum的静态方法:static Type Enum.GetUnderLyingType(Type enumType)。该方法返回用于保存枚举类型实例值的基础类型。每个枚举类型都有一个基础类型,它们可以是byte、sbyte、short、ushort、int(C#选用的默认值)、uint、long或ulong。 我们可以在定义一个枚举类型的时候,让其中多个符号有着相同的数值。但当将一个数值转换为 阅读全文
摘要:
StringBuilder 为了获得更高的性能,StringBuilder的方法并不保证线程安全。如果我们的程序需要对StringBuilder对象做多线程操作,那么我们必须显式添加线程同步代码。字符串特定格式与语言文化 如果我们希望自己的类型能为调用者提供格式和语言文化选择的话,我们就应该使其实现System.IFormattable接口: public interface IFormattable { String ToString(String format, IFormatProvider formatProvider); } format参数告诉方法应该怎样来格式化对象;format 阅读全文
摘要:
关于回车、换行 String s = "Hi\r\nthere."; 以上代码将回车、换行字符硬编码到字符串中,但更加好的做法是使用System.Enviroment类型提供的一个名为NewLine的只读属性。 示例代码: String s = "Hi" + Enviroment.NewLine + "there."; 这样做的好处是,NewLine属性依赖于特定平台,根据底层平台的不同,它的返回值也不同。在Windows系统上运行时,该属性返回的字符串为"\r\n"。如果将CLR移植到UNIX系统上,NewLin 阅读全文