《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.常量Const和ReadOnly字段的区别在于只读字段可以从一个变量中提取的值去初始化常量。
8.值类型存储在堆栈中,而引用类型存储在托管堆上。C#中,简单数据类型(int,float,byte)、枚举类型和结构(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)
作者:CoderZh
公众号:hacker-thinking (一个程序员的思考)
独立博客:http://blog.coderzh.com
博客园博客将不再更新,请关注我的「微信公众号」或「独立博客」。
作为一个程序员,思考程序的每一行代码,思考生活的每一个细节,思考人生的每一种可能。
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。