当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > c#v2.0 扩展特性 翻译1

ASP.NET
Asp.net 时间操作基类(支持短日期,长日期,时间差)
asp.net 获取机器硬件信息(cpu频率、磁盘可用空间、内存容量等)
asp.net 数据库备份还原(sqlserver+access)
Asp.Net 数据操作类(附通用数据基类)
Asp.net 弹出对话框基类(输出alet警告框)
Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)
Asp.net Socket客户端(远程发送和接收数据)
Asp.net 字符串操作基类(安全,替换,分解等)
Asp.Net数据输出到EXCEL表格中
asp.net Gridview里添加汇总行
asp.net UpdatePanel的简单用法
asp.net ajaxControlToolkit FilteredTextBoxExtender的简单用法
this connector is disabled错误的解决方法
sql事务应用积累
asp.net Page.Controls对象(找到所有服务器控件)
在asp.NET中字符串替换的五种方法
ASP.NET缓存方法分析和实践示例代码
asp.net 在DNN模块开发中遇到的resx怪问题
ASP.NET State service状态服务的问题解决方法
asp.net 结合mysql存储过程进行分页代码

ASP.NET 中的 c#v2.0 扩展特性 翻译1


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 102 ::
收藏到网摘: n/a

Introduction to C# 2.0 C# 2.0 introduces several language extensions, the most important of which are Generics, Anonymous Methods, Iterators, and Partial Types. C#2.0 介绍几种语言扩展,泛型,匿名方法,迭代器 和、partial Types. · Generics permit classes, structs, interfaces, delegates, and methods to be parameterized by the types of data they store and manipulate. Generics are useful because they provide stronger compile-time type checking, require fewer explicit conversions between data types, and reduce the need for boxing operations and run-time type checks. 泛型允许类,结构,接口,代理还有方法被他们存储和操作数据类型参数化。泛型相当有用,因为他们提供强制的编译时类型检查,要求更少的数据类型之间的显式转换,并减少装箱拆箱的操作和运行时类型检查。 · Anonymous methods allow code blocks to be written “in-line” where delegate values are expected. Anonymous methods are similar to lambda functions in the Lisp programming language. C# 2.0 supports the creation of “closures” where anonymous methods access surrounding local variables and parameters. · Iterators are methods that incrementally compute and yield a sequence of values. Iterators make it easy for a type to specify how the foreach statement will iterate over its elements. · Partial types allow classes, structs, and interfaces to be broken into multiple pieces stored in different source files for easier development and maintenance. Additionally, partial types allow separation of machine-generated and user-written parts of types so that it is easier to augment code generated by a tool. This chapter gives an introduction to these new features. Following the introduction are four chapters that provide a complete technical specification of the features. 这个章节将介绍这些新特性。随后的四个章节的介绍将提供有关特性的完整技术规范 The language extensions in C# 2.0 were designed to ensure maximum compatibility with existing code. For example, even though C# 2.0 gives special meaning to the words where, yield, and partial in certain contexts, these words can still be used as identifiers. Indeed, C# 2.0 adds no new keywords as such keywords could conflict with identifiers in existing code. c#2.0中的语言扩展最大程度上保证和现有代码的兼容。举例说,即使c#2.0指定以下词如yield,partial在特定的上下文有特有的意义,他们依然可以作为标示符。甚至,c#2.0没有加任何新的可能会在现有代码冲突的关键词 Generics Generics permit classes, structs, interfaces, delegates, and methods to be parameterized by the types of data they store and manipulate. C# generics will be immediately familiar to users of generics in Eiffel or Ada, or to users of C++ templates, though they do not suffer many of the complications of the latter. 泛型允许类,结构,接口,代理和方法被他们存储操作的数据类型参数化。C#泛型将很快被eiffel,ada的使用过泛型的用户熟悉,或是使用过c++templates,尽管他们不需要忍受以后的多种编译器。 Why generics? Without generics, general purpose data structures can use type object to store data of any type. For example, the following simple Stack class stores its data in an object array, and its two methods, Push and Pop, use object to accept and return data, respectively: 如果没有泛型,一般数据结构能使用类型对象去存储任何数据类型。举例,下面所描述的一个很简单的栈的类存储数据在对象数组中。它有两个方法push和pop,使用对象分别地去接受和返回数据 public class Stack{object[] items;int count; public void Push(object item) {...} public object Pop() {...}} While the use of type object makes the Stack class very flexible, it is not without drawbacks. For example, it is possible to push a value of any type, such a Customer instance, onto a stack. However, when a value is retrieved, the result of the Pop method must explicitly be cast back to the appropriate type, which is tedious to write and carries a performance penalty for run-time type checking: 当使用对象类型的时候栈类的使用更灵活,它并非没有缺陷。举例说,它很可能压入任何类型的值,如一个customer实例