关于C#中泛型、匿名方法、迭代器问题

Liao831026 2009-06-14 12:35:18
各位高手大家好。。。。
我是个C#新手,现在提个问题。。。。
如何理解泛型、匿名方法和迭代器及其作用!
先谢谢了。。。
...全文
56 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sysping1 2009-06-14
  • 打赏
  • 举报
回复
泛型: 具体用到才确定的类型
匿名方法: Delegate, 方法类型(函数指针类型),是个类型,可以new实例,实例指向某个方法。
迭代器: emualtor,顺序枚举集合的算法

举例:

public class People
{
int lv = 0;
int lo = 0;

public static void SortPeoples(People[] peoples)
{
//泛型:Array.Sort<T>, T可以是任意类型
// Comparison 就是delegate , delegate 定义的 Comparison 就是个类型,
// 而new Comparison<People>(ComparePeople1) 是Comparison 的实例,它指向ComparePeople1
Array.Sort<People>(peoples, new Comparison<People>(ComparePeople));//排序
}

//迭代也叫枚举器,基本特征是集成于IEmualtor或ICollection,可以用foreach语法
public static void DisplayPeoples(People[] peoples)
{
foreach(People people in peoples)//迭代器
{
...
}
}

//排序
private static int ComparePeople(People p1, People p2)
{
if (p1.lv == p2.lo) return CompareInt(p1.lo, p2.lo);
return CompareInt(p1.lv, p2.lv);
}

private static int CompareInt(int n1, int n2)
{
if (n1 > n2) return 1 ;
if (n1 < n2) return -1 ;
return 0;
}
}


//别理解太深了,用吧,用到实处,就理解了!
Sysping1 2009-06-14
  • 打赏
  • 举报
回复
泛型: 具体用到才确定的类型
匿名方法: Delegate, 方法类型(函数指针类型),是个类型,可以new实例,实例指向某个方法。
迭代器: emualtor,顺序枚举集合的算法

举例:
public class People
{
int lv = 0;
int lo = 0;

public static void SortPeoples(People[] peoples)
{
//泛型:Array.Sort<T>, T可以是任意类型
// Comparison 就是delegate , delegate 定义的 Comparison 就是个类型,
// 而new Comparison<People>(ComparePeople1) 是Comparison 的实例,它指向ComparePeople1
Array.Sort<People>(peoples, new Comparison<People>(ComparePeople));//排序
}

//迭代也叫枚举器,基本特征是集成于IEmualtor或ICollection,可以用foreach语法
public static void DisplayPeoples(People[] peoples)
{
foreach(People people in peoples)//迭代器
{
...
}
}
}
下载前必看:https://pan.quark.cn/s/b714dc1ffe2d C# 2.0是微软.NET框架的一个核心版本,它在C# 1.1版本的基础上增添了许多新功能,大幅度提升了语言的功能性和灵活性。 本篇内容将详细分析这些重要特性,涵盖C# 2.0的概述、泛型匿名方法迭代器以及部分类等概念。 一、C# 2.0概述C# 2.0是在2005年推出的,作为.NET Framework 2.0的组成部分。 该版本的宗旨在于提升开发效率,强化类型安全,并增加了对面向服务架构的支持。 C# 2.0引入了诸多新功能,使开发者能够构建更高效、更易维护的代码,其包括匿名方法迭代器泛型等。 二、泛型泛型代表了C# 2.0的一个重大进步,它使开发者能够设计适用于多种数据类型的类、接口和方法。 泛型增强了代码的复用性,减少了不必要的类型转换,并提供了更严格的类型验证。 比如,泛型集合类如List和Dictionary,允许在编译阶段明确指定元素或键值对的类型,从而确保类型安全性。 三、匿名方法匿名方法C# 2.0是一个创新的概念,它让开发者在无需单独定义方法的情况下创建和传递代码段。 在处理事件处理或需要临时代码逻辑的情境极为实用。 匿名方法存在隐式类型和显式类型两种形式,通过lambda表达式(虽然在C# 3.0正式引入,但在2.0可当作匿名方法使用)的形式可以更精简地书写。 四、迭代器迭代器使开发者能够自定义集合的遍历方式。 借助yield return语句,开发者可以构建一个逐个返回元素的迭代器迭代器在实现如惰性加载、数据流或无限序列等场景特别有效。 例如,可以设计一个返回斐波那契数列的迭代器,仅在请求下一个数时才进行计算。 五、部...

111,123

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧