夜光序言:
想过那些不因的语言,出自于谁,只不过正确的时间遇到对的人,说的真好。总要拿着明白装糊涂,那又是何苦。
正文:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 案例1
{
class Stu /*: IComparable*/
{
//我们先定义两个属性
public int id;
public string name;
public override string ToString()
{
return string.Format("id={0},name={1}",id,name);
}
}
class Program
{
//下面这个:代理定义了一个方法的原型
//返回值必须是int,有两个参数 x<y
// 表示x在前 , x == y 两者在同一位置, x>y 表示y在前
/*public delegate int Comparison<in T>(T x, T y);*/
//代理如何改为具体的方法
//1.去掉delegate关键字 并且增加static关键字
//2.把T类型变成实际要比较的类型
//3.实现代理的方法体,按照文档的规范要求
public static int CompareById(Stu x, Stu y) //定义一个方法
{
return x.id - y.id; //如果是大于0的,表示x在前,如果小于0,表示y在前
}
static void Main(string[] args)
{
Stu s1 = new Stu() { id = 5, name = "萧炎" };
Stu s2 = new Stu() { id = 2, name = "林动" };
Stu s3 = new Stu() { id = 8, name = "唐三" };
//夜光:我们创建一个list
List<Stu> sa = new List<Stu>();
sa.Add(s1);
sa.Add(s2);
sa.Add(s3); //我们把元素,三个加入进去
//下面这个,要传入进去方法的名称
sa.Sort(CompareById); //想要使用这个比较器,需要实现接口
//为什么上面会报错,因为这个方法有点问题,需要加入static关键字
//写一个循环,输出看一下
for(int i = 0; i < sa.Count; i++)
{
Console.WriteLine(sa[i]); //需要重写这个类的方法
}
Console.ReadLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 案例1
{
class Stu /*: IComparable*/
{
//我们先定义两个属性
public int id;
public string name;
public override string ToString()
{
return string.Format("id={0},name={1}",id,name);
}
}
class Program
{
//下面这个:代理定义了一个方法的原型
//返回值必须是int,有两个参数 x<y
// 表示x在前 , x == y 两者在同一位置, x>y 表示y在前
/*public delegate int Comparison<in T>(T x, T y);*/
//代理如何改为具体的方法
//1.去掉delegate关键字 并且增加static关键字
//2.把T类型变成实际要比较的类型
//3.实现代理的方法体,按照文档的规范要求
public static int CompareById(Stu x, Stu y) //定义一个方法
{
return x.id - y.id; //如果是大于0的,表示x在前,如果小于0,表示y在前
}
//下面一个实现按照name的比较
public static int CompareByName(Stu x, Stu y) //定义一个方法
{
return x.name.CompareTo(y.name); //根据name来进行排序
}
static void Main(string[] args)
{
Stu s1 = new Stu() { id = 5, name = "萧炎" };
Stu s2 = new Stu() { id = 2, name = "林动" };
Stu s3 = new Stu() { id = 8, name = "唐三" };
//夜光:我们创建一个list
List<Stu> sa = new List<Stu>();
sa.Add(s1);
sa.Add(s2);
sa.Add(s3); //我们把元素,三个加入进去
//下面这个,要传入进去方法的名称
sa.Sort(CompareByName); //想要使用这个比较器,需要实现接口
//为什么上面会报错,因为这个方法有点问题,需要加入static关键字
//写一个循环,输出看一下
for(int i = 0; i < sa.Count; i++)
{
Console.WriteLine(sa[i]); //需要重写这个类的方法
}
Console.ReadLine();
}
}
}