《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)

[温馨提示]:该文章由原博客园导入而来,如排版效果不佳,请移步:http://www.cnblogs.com/coderzh/archive/2007/10/28/940352.html

微信扫一扫交流

作者:CoderZh
微信关注:hacker-thinking (一个程序员的思考)
本文出处:https://blog.coderzh.com/2007/10/28/940352/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。