关于委托问题
关于委托一直不能理解; 今天好好看了一下书;却发现有个地方不懂
这是代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 委托实例2sort排序
//我们要编写一个类BubbleSorter;他执行一个静态方法sort();这个方法的第一个参数是一个对象数组;将该数组进行从新排序;
{
//声明委托;委托类型有两个参数 返回bool类型;就是说;它的实例(也就是委托)执行的方法参数有两个
delegate bool Comparison(object x,object y);
class BubbleSorter
{
//这个方法签名 里面有委托类型的参数;传过来的是一个方法
static public void Sort(object[] sortArray, Comparison comparison)
{
//冒泡法
for(int i=0;i<sortArray.Length;i++)
{
for(int j=i+1;j<sortArray.Length;j++)
{
if(comparison(sortArray[j],sortArray[i]))//这里就执行委托方法;这里返回的是bool类型的;后面大于前面的就true;
{
object temp = sortArray[i];
sortArray[i]=sortArray[j];
sortArray[j]=temp;
}
}
}
}
}
//定义一个类;
class Employee
{
private string name ;
private decimal salary;
public Employee(string name, decimal salary)
{
this.name = name;
this.salary = salary;
}
public override string ToString()
{
return string.Format("{0},{1}", name, salary);
}
//这里返回bool型;
public static bool CompareSalary(object x, object y)
{
Employee e1 = x as Employee;
Employee e2 = y as Employee;
return (e1.salary < e2.salary);
}
}
class Program
{
static void Main(string[] args)
{
//对象数组
Employee[] employee =
{
new Employee("shirenchuang",20000),
new Employee ("hehe" , 1999),
new Employee("sasd", 3214234)
};
//我想知道这第二个参数怎么可以这样:? 这里要传的不是委托类型的么?还是说传入的方法名只要满足签名就可以?
BubbleSorter.Sort(employee, Employee.CompareSalary);
foreach (Employee emp in employee)
{
Console.WriteLine(emp);
}
}
}
}
问题在这里

求教!!
这是代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 委托实例2sort排序
//我们要编写一个类BubbleSorter;他执行一个静态方法sort();这个方法的第一个参数是一个对象数组;将该数组进行从新排序;
{
//声明委托;委托类型有两个参数 返回bool类型;就是说;它的实例(也就是委托)执行的方法参数有两个
delegate bool Comparison(object x,object y);
class BubbleSorter
{
//这个方法签名 里面有委托类型的参数;传过来的是一个方法
static public void Sort(object[] sortArray, Comparison comparison)
{
//冒泡法
for(int i=0;i<sortArray.Length;i++)
{
for(int j=i+1;j<sortArray.Length;j++)
{
if(comparison(sortArray[j],sortArray[i]))//这里就执行委托方法;这里返回的是bool类型的;后面大于前面的就true;
{
object temp = sortArray[i];
sortArray[i]=sortArray[j];
sortArray[j]=temp;
}
}
}
}
}
//定义一个类;
class Employee
{
private string name ;
private decimal salary;
public Employee(string name, decimal salary)
{
this.name = name;
this.salary = salary;
}
public override string ToString()
{
return string.Format("{0},{1}", name, salary);
}
//这里返回bool型;
public static bool CompareSalary(object x, object y)
{
Employee e1 = x as Employee;
Employee e2 = y as Employee;
return (e1.salary < e2.salary);
}
}
class Program
{
static void Main(string[] args)
{
//对象数组
Employee[] employee =
{
new Employee("shirenchuang",20000),
new Employee ("hehe" , 1999),
new Employee("sasd", 3214234)
};
//我想知道这第二个参数怎么可以这样:? 这里要传的不是委托类型的么?还是说传入的方法名只要满足签名就可以?
BubbleSorter.Sort(employee, Employee.CompareSalary);
foreach (Employee emp in employee)
{
Console.WriteLine(emp);
}
}
}
}
问题在这里

求教!!
...全文
相关推荐
C# 委托与事件 猫鼠问题示例
C# 委托与事件 猫鼠问题示例。通过猫叫老鼠跑,来展示委托与事件。即通过传递把一个类的方法传递给另外一个类的事件(+=方式注册),在另外一个类中执行事件。
Button添加事件委托问题
Button添加事件委托问题Button添加事件委托问题
一个基于Bayes定理的委托——代理问题研究分析
一个基于Bayes定理的委托——代理问题研究分析,蔡晓钰,蔡晓东,针对信息不对称的委托—代理问题,提出了委托人通过对代理人所处的多重自然状态的观测间接获取信息的一种方法,并基于观测到的信
贷款人的委托代理问题论文.doc
贷款人的委托代理问题论文.doc
企业管理中的委托代理问题研究 (2007年)
现代企业的所有者和经理人之间是委托代理关系,如何防止信息不对称条件下经理人的机会主义行为是企业管理需要解决的重要问题。将经理人的努力分为生产性努力和分配性努力,运用委托代理理论建立了基于企业所有者和经理人的委托代理模型。依据模型的求解结果对企业管理中的各种因素对经理人行为的影响进行了分析。在模型分析的基础上,提出了企业所有者为防止经理人的机会主义行为应采取的措施。


