哪个哥哥们有相关的资料啊,救急啊!这个方面的东东我弄了好几天了,还是有很多的地方不太明白啊,救命啊!
有的能不能回啊,谢谢了啊
替所有的菜鸟们向你致敬!
有的能不能回啊,谢谢了啊
替所有的菜鸟们向你致敬!
解决方案 »
- vs2005 C#+Access数据库,向表里增加记录,日期时间值怎么写不到日期时间字段里?
- 看看这个是怎么了!!~~!
- 一个耐人寻味的问题!!!
- 有用SharpDevelop写程序的吗,如何修改编辑器的颜色背景?
- winform传值时,"+"成了空格,急
- [**高分求教**]有关套打的问题~~都进来关注一下,急用!!!!
- 原則提醒: 專案 'Common.csproj' (項目 projSystem, projCSharpProject) 不允許 參考 'System.Windows.Forms' (項目 refSystem.Windows.F
- 用c#做的win程序,怎么在其他机器上运行,主要是数据库连接搞不懂?在线等
- dotnet如何才能获取Oracle 的版本?
- 关于DATASET的问题!
- 我想问个问题,关于网页调用邮件发送软件
- C#中的事件与委托是什么啊?
委托类型 (delegate type) 表示对具有特定参数列表和返回类型的方法的引用。通过委托,我们能够将方法作为实体赋值给变量和作为参数传递。委托类似于在其他某些语言中的函数指针的概念,但是与函数指针不同,委托是面向对象的,并且是类型安全的。
下面的示例声明并使用一个名为 Function 的委托类型。
using System;
delegate double Function(double x);
class Multiplier
{
double factor;
public Multiplier(double factor) {
this.factor = factor;
}
public double Multiply(double x) {
return x * factor;
}
}
class Test
{
static double Square(double x) {
return x * x;
}
static double[] Apply(double[] a, Function f) {
double[] result = new double[a.Length];
for (int i = 0; i < a.Length; i++) result[i] = f(a[i]);
return result;
}
static void Main() {
double[] a = {0.0, 0.5, 1.0};
double[] squares = Apply(a, new Function(Square));
double[] sines = Apply(a, new Function(Math.Sin));
Multiplier m = new Multiplier(2.0);
double[] doubles = Apply(a, new Function(m.Multiply));
}
}
Function 委托类型的实例可以引用任何接受 double 参数并返回 double 值的方法。Apply 方法将给定的 Function 作用于 double[] 的元素,并返回含有结果的 double[]。在 Main 方法中,Apply 用于将三个不同的函数应用于一个 double[]。
委托可以既可以引用静态方法(例如前一示例中的 Square 或 Math.Sin),也可以引用实例方法(例如前一示例中的 m.Multiply)。引用了实例方法的委托也就引用了一个特定的对象,当通过该委托调用这个实例方法时,该对象在调用中成为 this。
委托的一个有趣且有用的属性在于,它不知道也不关心它所引用的方法的类;它所关心的仅是所引用的方法与委托具有相同的参数和返回类型。
{
/// <summary>
/// Class1 的摘要说明。
/// </summary> //定义委托
public delegate double text(int x,int y);
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
text t1 = new text(text1);
Console.Write("输入两个值");
int v1 = Int32.Parse(Console.ReadLine());
int v2 = Int32.Parse(Console.ReadLine()); double res = t1(v1,v2);
Console.WriteLine("结果 :"+res);
Console.ReadLine(); }
static double text1(int e,int r)
{
return e*r;
} }
}