C#语言的突出特点是什么?
2013-08-16
展开全部
C# 2.0 在很多方面改进了原有的C#语言。例如,泛型(Generics)的使用让开发人员可以用C#定义方法和类拥有一个或多个类型参数。泛型(Generics)是LINQ的一个支柱。
泛型(Generics)
很多编程语言通过定义具体的类型和严格的转换规则来处理变量和对象。用强类型语言写的代码缺少泛化的条件。
类型推断(Type Inference)
类型接口(Type Inference)是一个关键特性。它允许你写出更多的抽象代码,写这些抽象的代码让编译器处理关于类型的细节。然而,C#的类型转换机制在编译时不能保证类型都正确,也不能拦截错误代码(例如,调用完全不相容的类型的时候)。
泛型(Generics)不仅可以定义泛型方法(Generics Method),而且和类以及接口一样可以使用类型声明。正如前面所说,这本书的目的不是详细地解释泛型(Generics),而是想提醒您泛型(Generics)和LINQ的结合将会用着非常舒服。
委托(Delegates)
委托(Delegate)是封装了一个或多个方法的类。在其内部,一个代理保存了一些方法的指针列表,每个指针都对应于一个含有实例方法的类。
一个委托(Delegate)可以包含若干个方法,但是本章我们只讨论包含一个方法的委托(Delegate)。抽象点看,这个委托(Delegate)类型象一个代码容器。容器中的代码是不可更改的,但是它可以独立的被栈调用或是存储一个变量。它存储一个实例对象,这样就可以延长对象的生命周期直到委托被有效使用。
委托(Delegate)的语法演进是匿名方法(Anonymous Method)的基础,这部分内容我们下一章会提到。声明一个委托(Delegate)其实是定义一个可以实例化本身的类型。委托(Delegate)声明需要一个完整的方法签名
泛型(Generics)
很多编程语言通过定义具体的类型和严格的转换规则来处理变量和对象。用强类型语言写的代码缺少泛化的条件。
类型推断(Type Inference)
类型接口(Type Inference)是一个关键特性。它允许你写出更多的抽象代码,写这些抽象的代码让编译器处理关于类型的细节。然而,C#的类型转换机制在编译时不能保证类型都正确,也不能拦截错误代码(例如,调用完全不相容的类型的时候)。
泛型(Generics)不仅可以定义泛型方法(Generics Method),而且和类以及接口一样可以使用类型声明。正如前面所说,这本书的目的不是详细地解释泛型(Generics),而是想提醒您泛型(Generics)和LINQ的结合将会用着非常舒服。
委托(Delegates)
委托(Delegate)是封装了一个或多个方法的类。在其内部,一个代理保存了一些方法的指针列表,每个指针都对应于一个含有实例方法的类。
一个委托(Delegate)可以包含若干个方法,但是本章我们只讨论包含一个方法的委托(Delegate)。抽象点看,这个委托(Delegate)类型象一个代码容器。容器中的代码是不可更改的,但是它可以独立的被栈调用或是存储一个变量。它存储一个实例对象,这样就可以延长对象的生命周期直到委托被有效使用。
委托(Delegate)的语法演进是匿名方法(Anonymous Method)的基础,这部分内容我们下一章会提到。声明一个委托(Delegate)其实是定义一个可以实例化本身的类型。委托(Delegate)声明需要一个完整的方法签名
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |