C# 3.0 新增内容

C# 3.0新增了很多内容,这里对一些重点的特性进行讲解,为大家更好的学习VS2008奠定基础。新内容包括:自动属性、类初始化器、集合初始化器、扩展方法、推断类型与匿名类等。这里是为大家以后学期Linq做技术铺垫,所以锁定了上述的内容。

 

1、自动属性

以前类的定义是这样:

现在类的定义可以是:

自动属性的典型适用场合:
a、在属性代码中只包含基本的赋值取值功能
b、简单的实体类

自动属性不能实现只读或者只写属性
因为没有声明私有变量,在使用自动属性时只能直接使用属性名进行引用

 

2、对象初始化器

以往初始化的方式:

先在的方式:

新的方式可以让初始化对象更方便。

初始化是可以嵌套的

 

3、扩展方法

简单理解就是为某类增加一个功能(方法),前提是不修改原始类代码,不需要继承原始类。

扩展方法是个很好的功能,它可以实现上面的要求。

实现如下:

  首先定义一个静态类,其中包含一个静态方法,对哪个类进行扩充就将此类放在第一个参数,前面必须加this。

  如果此方法有参数,就在后面加上并用逗号隔开。

调用的时候会发现:

string str = "";

str.ToUpperNew(); --新增方法。

 

4、推断类型

var是C# 3.0 引入的一个新关键字,它可以根据初始值自动推断局部变量的类型。

var 和 JavaScript 中的  var 的区别:
事实上伴随 var 关键字引入的是一种叫做 “Implicitly Typed Local Variables” 的机制,
即“暗示类型局部变量” 注意在这里它清晰地表明 var 修饰的是一个局部变量,
所以虽然我们后面有时称呼它为“推断类型”但实际上它不是一种“类型” 而是“可以推断类型的局部变量”。

var a = 2010;
var b = "Name";
var c = 11.0;

 

var 和 object 的区别:

var name = "temp";

name = 1900;

此代码在编译时出错!

object name = "temp";

name = 1111;

此编译时是通过的!

 

5、匿名类

var emp = new {

    Id = 1,

    Name = "temp"

};

匿名类和var一起使用,由于没有类名,所以类型就使用var类型。

在使用时是 emp.Id或emp.Name来获取。

这个匿名类在Linq中很常见。

 

Copyright作者: panzhenyu.net
版权归作者和博客园共有

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值