---------------------- Windows Phone 7手机开发、.Net培训、 期待与您交流!----------------------
数值字面量
无后缀的实数字面量是double类型,而不是float类型:比如 1.23==1.23D 。
而decimal字面量的后缀是M,m,因为和它常用来表示金融数字money的意思。
字符字面量
由两个单引号('')内的字符表示而成。字符字面量可以是下面的任一一种:单个字符、一个简单转义序列、一个十六进制转义序列或一个 Unicode 转义序列。
字符字面量的类型是char。
- 单个字符:char c1 = 'd';
- 简单转义序列是一个反斜杠(\)后面跟着单个字符:char c2 = '\n';
- 十六进制转义序列是一个反斜杠,后面跟着一个小写的x,后面再跟着多至4个十六进制数字:char c3 = '\x0061';
- Unicode转义序列是一个反斜杠,后面跟着一个小写的u,后面再跟着多至4个十六进制数字:char c4 = '\u005a';
问题:unicode和十六进制转义序列有什么不同?
字符串字面量
字符串字面量使用双引号("")标记,有两种字符串字面量类型:
- 规则字符串字面量
-
- 双引号内包含字符变量的4种形式,转义:string s1 = "d\n\x7746\u774a";输出:
- 逐字字符串字面量
-
- 以@为前缀,双引号内的字符原样输出,不转义:string s2 = @"d\n\x7746\u774a";
- 但是有一个特殊例外,相邻两个双引号会被解释成一个双引号:string s3 = @"I say:""你叫什么名字?""";输出:I say:"你叫什么名字?"
字符串字面量存储在堆中,并且相同的字符串字面量共享堆中同一地址以节省内存。
比较操作和相等性操作
- 浅比较:只比较引用,不比较实际数据。
-
- 对大多数引用类型来说,「==」比较只是比较引用值而不比较实际数据值:即是只看是否指向同一个内存地址,是则true,否则false。即使两个引用类型实际数据相等,如果不是同一份内存的话,false。————这种比较叫浅比较。
- 深比较:比较实际数据。
-
- string类型也是引用类型,但是比较方式不同。比较字符串的相等性时,比较实际内容和大小写敏感等。—————这种叫深比较。
- 委托是引用类型:如果两个委托都为null,或者两者的调用列表中有相同数目的成员,并且调用列表想匹配,那么比较返回true。
- 枚举enum是值类型,比较操作数的底层值。
用户自定义类型转换
自定义转换属于运算符。
隐式转换即是编译器自动执行转换,而显式转换即是需要程序猿手动进行转换。
using语句包装资源
using除了引入命名空间外,还可以自动销毁资源(用在ADO.NET和IO文件操作等地方)
----------------------Windows Phone 7手机开发、.Net培训、 期待与您交流!----------------------