夜光带你走进C# 游戏开发等(九十)擅长的领域

夜光序言:

 

想过那些不因的语言,出自于谁,只不过正确的时间遇到对的人,说的真好。总要拿着明白装糊涂,那又是何苦。

 

 

 

 

 

 

 

 

正文:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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();
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值