Terry's blog

Focus on bigdata and cloud.

博客园 首页 新随笔 联系 订阅 管理
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 39 下一页

2007年11月20日 #

摘要: 在定义一个分为多个部分的类型时,要使用一个新的类型修饰符——partial。为了保证和现有代码的兼容性,这个标识符和其他标识符不同:与get和set相同,它不是一个关键字,而且它必须直接出现在关键字class、struct和interface之一的前面。 类声明: 特性可选 类修饰符可选 partial可选 class 标识符 类型参数列表可选 基类可选 类型参数约束... 阅读全文
posted @ 2007-11-20 10:40 王晓成 阅读(558) 评论(0) 推荐(0)

摘要: 在 2.0 之前的 C# 版本中,声明委托的唯一方法是使用命名方法。C# 2.0 引入了匿名方法。 要将代码块传递为委托参数,创建匿名方法则是唯一的方法。例如: // Create a handler for a click event button1.Click += delegate(System.Object o, System.EventArgs e) ... 阅读全文
posted @ 2007-11-20 09:39 王晓成 阅读(397) 评论(0) 推荐(0)

摘要: 迭代器是 C# 2.0 中的新功能。迭代器是方法、get 访问器或运算符,它使您能够在类或结构中支持 foreach 迭代,而不必实现整个 IEnumerable 接口。您只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,它将自动生成 IEnumerable 或 IEnumerable 接口的 Current、MoveNext 和 Dispose 方法。 迭代器概述 ... 阅读全文
posted @ 2007-11-20 09:21 王晓成 阅读(287) 评论(0) 推荐(0)

2007年11月19日 #

摘要: 将泛型类型或方法编译为 Microsoft 中间语言 (MSIL) 时,它包含将其标识为具有类型参数的元数据。泛型类型的 MSIL 的使用因所提供的类型参数是值类型还是引用类型而不同。 第一次用值类型作为参数来构造泛型类型时,运行库会创建专用泛型类型,将提供的参数代入到 MSIL 中的适当位置。对于每个用作参数的唯一值类型,都会创建一次专用泛型类型。 例如,假设您的程序代码声明了一个由整数构造的堆... 阅读全文
posted @ 2007-11-19 10:27 王晓成 阅读(236) 评论(0) 推荐(0)

摘要: C# 泛型和 C++ 模板都是用于提供参数化类型支持的语言功能。然而,这两者之间存在许多差异。在语法层面上,C# 泛型是实现参数化类型的更简单方法,不具有 C++ 模板的复杂性。此外,C# 并不尝试提供 C++ 模板所提供的所有功能。在实现层面,主要区别在于,C# 泛型类型替换是在运行时执行的,从而为实例化的对象保留了泛型类型信息。 以下是 C# 泛型和 C++ 模板之间的主要差异: ... 阅读全文
posted @ 2007-11-19 10:05 王晓成 阅读(915) 评论(0) 推荐(0)

摘要: 在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T: T 是引用类型还是值类型。 如果 T 为值类型,则它是数值还是结构。 给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T 为数值类型而不是结构时,语句 t = 0 才能正常使用。解决方案是使用 de... 阅读全文
posted @ 2007-11-19 09:46 王晓成 阅读(252) 评论(0) 推荐(0)

2007年11月16日 #

摘要: 委托 可以定义自己的类型参数。引用泛型委托的代码可以指定类型参数以创建已关闭的构造类型,就像实例化泛型类或调用泛型方法一样,如下例所示: public delegate void Del(T item); public static void Notify(int i) { } Del m1 = new Del(Notify); C# 2.0 版具有称为方法组转换的新功能,此功能适用于具体委托... 阅读全文
posted @ 2007-11-16 16:34 王晓成 阅读(857) 评论(0) 推荐(0)

摘要: 委托类型声明的格式如下: public delegate void TestDelegate(string message); delegate 关键字用于声明一个引用类型,该引用类型可用于封装命名方法或匿名方法。委托类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。有关委托的应用,请参见委托和泛型委托。 备注 委托是事件的基础。 通过将委托与命名方法或匿名方法关联,可以实例化委托... 阅读全文
posted @ 2007-11-16 16:21 王晓成 阅读(591) 评论(0) 推荐(0)

摘要: 在 C# 2.0 中,下限为零的一维数组自动实现 IList。这使您可以创建能够使用相同代码循环访问数组和其他集合类型的泛型方法。此技术主要对读取集合中的数据很有用。IList 接口不能用于在数组中添加或移除元素;如果试图在此上下文中调用 IList 方法(如数组的 RemoveAt),将引发异常。 下面的代码示例演示带有 IList 输入参数的单个泛型方法如何同时循环访问列表和数组,本例中为整数... 阅读全文
posted @ 2007-11-16 16:02 王晓成 阅读(412) 评论(0) 推荐(0)

摘要: 泛型方法是使用类型参数声明的方法,如下所示: class SwapTest { static void Swap(ref T left, ref T right) { T temp; temp = left; left = right; right = tem... 阅读全文
posted @ 2007-11-16 15:51 王晓成 阅读(543) 评论(0) 推荐(0)

上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 39 下一页