-------------------------------------------------------------Proson.cs

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication2{publicclassProson{publicstringName{get;privateset;}publicdecimalMoney{get;privateset;}publicProson(stringname,decimalmoney){this.Name=name;this.Money=money;}publicoverridestringToString(){returnstring.Format("姓名:{0};月薪:{1}",Name,Money);}//此方法用于传为委托publicstaticboolIsMax(Prosonp1,Prosonp2){returnp1.Money<p2.Money;}}}

-------------------------------------------------------------MySort.cs

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication2{publicclassMySort{//IList<T>array:用于接收任何数组,集合//Func<T,T,bool>func:委托,传递两个参数,一个bool返回值publicstaticvoidSort<T>(IList<T>array,Func<T,T,bool>func){boolyesno=true;do{yesno=false;for(inti=0;i<array.Count-1;i++){if(func(array[i],array[i+1]))//用到了委托【boolIsMax(Prosonp1,Prosonp2)】{Ttemp=array[i];array[i]=array[i+1];array[i+1]=temp;yesno=true;}}}while(yesno);}}}

-------------------------------------------------------------主程序

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication2{classProgram{staticvoidMain(string[]args){Proson[]p={newProson("张翼德",100000m),newProson("赵子龙",50000m),newProson("关云长",150000m),newProson("诸葛亮",200000m)};//传递一个数组,和一个方法MySort.Sort(p,Proson.IsMax);foreach(variteminp){Console.WriteLine(item.ToString());Console.ReadLine();}}}}