黑马程序员08——字面量(literal)、深复制、浅复制、隐式及显式转换

  ---------------------- Windows Phone 7手机开发.Net培训、 期待与您交流!----------------------

字面量(literal)是源代码中书写的数字或字符串,表示一个类型明确的、固定的值。

数值字面量
无后缀的实数字面量是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培训、 期待与您交流!----------------------


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值