C# 里式转换

本文通过一个具体的C#程序示例介绍了里式转换的概念及其应用。程序随机生成不同类型的人类对象(如学生、老师等),并根据不同类型调用相应的方法来实现多态行为。这不仅展示了面向对象编程中继承和多态的使用方式,还强调了类型检查和转换的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;

namespace 里式转换练习
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建 人类 学生 老师 野兽 美女 五个对象
            //每次调用此程序时, 都随机输出不同人的打招呼

            Person[] pers = new Person[6];
            //利用随机数
            Random r = new Random();

            for(int i=0;i<pers.Length;i++)
            {
                int Number = r.Next(1, 7);//随机生成[1,6]的数
                
                switch(Number)
                {
                    case 1: 
                        pers[i] = new Student(); 
                        break;
                    case 2:
                        pers[i] = new Teacher();
                        break;
                    case 3:
                        pers[i] = new Beast();
                        break;
                    case 4:
                        pers[i] = new Meinv();
                        break;
                    case 5:
                        pers[i] = new Person();
                        break;

                }

                
            }

            for(int i=0;i<pers.Length;i++)
            {
                if(pers[i] is Student)
                {
                    //Student ss = (Student)pers[i];
                    //ss.StudentSayhi();

                    ((Student)pers[i]).StudentSayhi();
                }
                else if(pers[i] is Teacher)
                {
                    Teacher tt = (Teacher)pers[i];
                    tt.TeacherSayhi();
                }
                else if(pers[i] is Meinv)
                {
                    Meinv mm = (Meinv)pers[i];
                    mm.MeinvSayhi();
                }
                else if(pers[i] is Person)
                {
                    Person pp = (Person)pers[i];
                    pp.PersonSayhi();
                }
                else
                {
                    Console.WriteLine("转换失败");
                }
            }

            Console.ReadKey();

        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值