Visual C# 3.0 新特性概览(2)
来源:互联网 责任编辑:栏目编辑 发表时间:2013-07-02 06:11 点击:次
事实上,如果另外一个满足了相同的名称和类型顺序的匿名类型也被创建了,编译器也会聪明的只创建一个匿名类型来支持两个实例来使用。同样,因为实例都是一个类的简单实例,它们可以进行互换因为类型实际上是一样的。
现在你拥有了这个类,但是你还需要一些东西来支持以上的类的某个实例。这就是"var"关键字的作用。它让你拥有一个以上匿名变量的实例的一个静态类型实例。这里有一个简单好用的匿名类型的使用例子: var frankenstein = new {hair="black", skin="green", teethCount=64} 扩展方法
扩展方法使你能够使用额外的静态方法来扩展各种类型。不过它们是非常有限的,也只能在实例方法不足够的情况下才作为候补使用。
扩展方法只能在静态类中被声明,并且以关键字"this"放在方法的第一个参数前来标识,如下就是一个有效的扩展方法的例子: public static int ToInt32(this string s)
{
return Convert.ToInt32(s) ;
} 如果一个包含以上方法的静态类被使用"using"关键字引进,ToInt32犯法将会出现在已有的类型中(虽然比现有的实例方法优先级低),你可以这样编译和执行代码: string s = "1";
int i = s.ToInt32(); 这使得你可以充分享用各种以有的内建的或者定义的类型的扩展特性,并且给它们加上新的方法。
{
public int x ;
public int y;
} 你然后可以使用一个对象初始化符来声明和初始化一个CoOrdinate对象,就像这样: var myCoOrd = new CoOrdinate{ x = 0, y= 0} ;
现在你拥有了这个类,但是你还需要一些东西来支持以上的类的某个实例。这就是"var"关键字的作用。它让你拥有一个以上匿名变量的实例的一个静态类型实例。这里有一个简单好用的匿名类型的使用例子: var frankenstein = new {hair="black", skin="green", teethCount=64} 扩展方法
扩展方法使你能够使用额外的静态方法来扩展各种类型。不过它们是非常有限的,也只能在实例方法不足够的情况下才作为候补使用。
扩展方法只能在静态类中被声明,并且以关键字"this"放在方法的第一个参数前来标识,如下就是一个有效的扩展方法的例子: public static int ToInt32(this string s)
{
return Convert.ToInt32(s) ;
} 如果一个包含以上方法的静态类被使用"using"关键字引进,ToInt32犯法将会出现在已有的类型中(虽然比现有的实例方法优先级低),你可以这样编译和执行代码: string s = "1";
int i = s.ToInt32(); 这使得你可以充分享用各种以有的内建的或者定义的类型的扩展特性,并且给它们加上新的方法。
对象和Collection初始化符
C# 3.0被希望来允许你包含一个初始化符,从而指定一个新创建的对象或者collection的初始值。这使得你能够一步结合声明和初始化。
举例来说,你可以这样定义CoOrdinate类:
{
public int x ;
public int y;
} 你然后可以使用一个对象初始化符来声明和初始化一个CoOrdinate对象,就像这样: var myCoOrd = new CoOrdinate{ x = 0, y= 0} ;
[NextPage]
也许你要问,为什么不要像下面这样做呢? var myCoOrd = new CoOrdinate(0, 0) ; 注
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>