《C#高级编程》笔记系列--点滴记录(持续更新中……)

1.C#本身不是.NET的一部分。.NET支持的一些特性,C#并不支持。而C#支持的另一些特性,.NET却不支持(例如运算符重载)
2.编译分两个阶段:
   (1)把源代码编译为Microsoft中间语言(IL)。
   (2)CLR把IL编译为平台专用的代码。
3.通用类型系统(CTS),将不同语言的类型映射为中间语言的类型,从而提供了语言的互操作性。
4.修饰符(public,static),操作符(==,>,<)
5.变量的作用域
  (1)同名的局部变量不能在同一作用域中申明两次。
  (2)类的字段和局部变量允许使用相同的名字。

6.常量Const总是静态的,不必也不允许加Static修饰符
7.常量ConstReadOnly字段的区别在于只读字段可以从一个变量中提取的值去初始化常量。
8.值类型存储在堆栈中,而引用类型存储在托管堆上。C#中,简单数据类型(intfloatbyte)、枚举类型和结构(struct)类型都是值类型。包含在引用类型内的值类型不会被存储在栈中,而是堆中,它被包含于引用类型对象中。值类型数组(例如双精度或整型数组)是在堆中存放,而不是栈中。只有保存数组引用的值是存放在栈中。这是因为所有数组类型都隐含派生于System.Array,它们都是引用类型。
9.decimal 类型不是基本类型,所以在计算时使用该类型会有性能损失。float 32位 double 64位 decimal 128位
10.可以在字符串字面量的前面加上字符@,甚至允许在字符串字面量中包含换行符:
      string jabberwocky=@"'Twasbrilligandtheslithytoves
                                         Didgyreandgimbleinthewabe.";
11.Foreach集合中迭代的各项的值不能改变,但若为对象,其属性是可以改变。
12.Continue语句退出当前循环,执行下一次循环
13.预处理指令#define #undef #if #elif #else #endif #warning #error #pragma warning disable 169 #line #region
14.out 关键字的用法。
15.C#的不支持可选参数。
16.所有的.NET类都派生于System.Object。我们定义类时,假定没有指定基类,编译器会自动假定这个类派生于System.Object基类

(最后更新于2007-10-28 14:00)

posted @ 2007-10-28 14:01  CoderZh  阅读(755)  评论(0编辑  收藏  举报