当前位置:首页 > ASP.NET技巧:ASP.NET2.0泛型和匿名方法

ASP.NET技巧:ASP.NET2.0泛型和匿名方法

点击次数:1068  更新日期:2010-12-27
\n

泛型:


\n

泛型概述:泛型可应用于类、方法、结构、接口、委托等设计中,兼复用性、类型安全和高效率于一身是与之对就的非泛型所不及的应用泛型,必须使用类System.Collections.Generic.Stack。该类的声明方式如下:


\n

System.Collections.Generic.Stack (声明代码)


\n

可以把Stack类想像成具有如下示意性处理过程:


\n

Stack类示意性代码:


\n

public class stack<>
{
T[] item;
int count;
public void Push(T item) {}
public T pop(){}
}


\n

可以为泛型设置3种类型参数的约束:派生约束、构造函数约束、引用/值类型约束


\n

匿名方法:


\n

匿名方法的概述:在C#1.x中,使用支持调用方法的委托来实现事件。委托提供运算符和方法来添加或删除目标方法,也可以在整个.Net框架中广泛地用于事件、回调、异步调用、多线程等。然而,为了使用一个委托,有时不得不创建一个类或方法,这种做法过于麻烦,且与开发人员的思维习惯不相符。例如,下面的示例实现了从一个包含列表框、文本框和按钮的窗体中获取简单的输入。当按下按钮时,文本框中的文本会被添加到列表框中。在C#1.x中,使用委托来实现事件机制,代码如下所示


\n

使用C#1.x的实现 代码


\n

class InputForm:From
{
ListBox listBox;
TextBox textBox;
Button addButton;
pulic MyForm()
{
listBox = new ListBox();
textBox = new TextBox();
addButton = new Button();
}
……..
void AddClick(object sender,EventArgs e)
{
listBox.Items.Add(textBox.Text)
}
}


\n

匿名方法允许将与一个关联的代码(通常指方法实体)“内嵌”到使用委托的地方,这样委托和方法实体都集中在一起


\n

使用匿名方法的实现代码(无参)


\n

class InputForm:From
{
ListBox listBox;
TextBox textBox;
Button addButton;
pulic MyForm()
{
listBox = new ListBox();
textBox = new TextBox();
addButton = new Button();
addButton.Click += delegate { listBox.Items.Add(textBox.Text);}
}
}


\n