选择显示字体大小

visual c# 2005抢先预览


  注意:本文是在产品发行前编写的,因此无法保证内文细节与实际产品完全相符。本文的信息仅代表文件出版时产品的情况,只可作为计划时参考。文件中信息如有变更恕不另行通知。
 
  简介

  microsoft visual studio 的下一版 (代号为 whidbey) 明显增强了 c# 的功能,包括创新的语言结构、新编译器功能、大幅提升了开发人员的生产力、加强调试功能等等。在程序语言创新功能方面,c# whidbey 发行版本支持泛型(generics)、iterator (迭代器)、部份类型,以及匿名方法。 whidbey 的新编译器功能可让开发人员直接在代码中禁用编译器警告,或验证 ecma/iso 一致性。 whidbey 也将具有数种生产力增强功能,包括重构 (refactoring)、 代码展开、代码格式化、增强 intellisense 等许多功能。调试功能也有加强,新功能包括增强的 datatips (信息快显)、调试的可视化工具、设计时的表达时式评估等等。 本文仅概括地介绍 whidbey 中的新功能,我们将继续加入客户所需的新功能。

  语言创新功能

  泛型

  泛型是 whidbey 中 c# 语言最主要的新功能之一。 c# 的泛型可允许类、结构、接口与方法,依其存储与处理的数据类型加以参数化。 泛型所以好用,因为许多常见类别与结构,可依其存储与处理的数据类型加以参数化。这些称为“泛型类声明”和“泛型结构声明”。同样地,许多 接口定义合约,可依其处理的数据类型加以参数化。这些称为“泛型接口声明”。方法也可依其类型加以参数化,以便实现“泛型算法”,这些称之为“泛型方法”。

  在下面的例子中,我们创建了一个 stack 泛型类声明,其中指定了类型参数,叫做 itemtype,在声明之后的尖括弧中予以声明。 泛型 stack 类实例不会强迫在对象之间来回转换,而是接受创建时的类型,并不加转换地存储该类型的数据。 itemtype 类型参数的作用有如占位符,直到使用时才指定实际 类型。请注意,itemtype 用于内部项目数组的元素类型、push 方法的参数类型,以及 pop 方法的返回类型:

public class stack
{
 private itemtype[ ] items;
 public void push(itemtype data) {...}
 public itemtype pop() {...}
}

  如下列简短例子所示,使用 stack 泛型类声明时,可指定泛型类所用的实际类型。 在此种情况下,我们通过在名称后的尖括号内 指定“类型形参”来要求 stack 使用 int 类型:

stack<int> stack = new stack<int>();
stack.push(3);
int x = stack.pop();

  这样,我们便创建了一个新的“构造类型”stack<int>,其中 stack 声明内部的每个 itemtype 将被取代为提供的 int 类型形参。事实上,建立 stack<int> 的新实例时,为了存储效率的考虑,项目数组的原本存储类型现在为 int[],而非 object[]。此外,当将 int 推压到堆栈时,不再需要对它进行转换。甚至,从堆栈取出项目时,不再需要明确地将它转换为适当的类型,因为 stack 这个特别的类在其数据结构中,将 int 以其原本的类型存储。

  若要存储非 int 项目至 stack,必须由 stack 建立不同的构造类型,并指定新类型形参。假如有一个简单的 customer 类,且我们希望使用 stack 来存储。要达到这个目的,只需使用 customer 类作为 stack 的类型形参,就可轻松地重复使用代码:

stack<customer> stack = new stack<customer>();
stack.push(new customer());
customer c = stack.pop();

  当然,一旦建立了以 customer 为类型形参的 stack,则仅可以存储 customer 对象 (或派生自 customer 类的对象)。 泛型提供“强类型检验”(strong typing),亦即我们无法再以下列不当方式将整数存储 在 stack 中:

stack<customer> stack = new stack<customer>();
stack.push(new customer());
stack.push(3); // compile-time error
customer c = stack.pop(); // no cast required

  部分类型

  部份类型允许单一类型,如一个类,分散至多个文件中。此功能对 visual studio 等代码生成器最为有用,它能将生成的代码与使用用者编写的代码分开存储在不同的文件中。藉由此方式,设计工具可以轻易地剖析与重新产生 代码,而不会影响到用户所编写的代码。例如:

// form1designer.cs
public partial class form1: system.windows.forms.form
{
 // 设计器代码
 void initializecomponent() { ... }
}

// form1user.cs
public partial class form1
{
 // 用户代码
 void mouse_click(object sender, mouseeventargs e) { ... }
}


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons