C#里氏替换原则中as和is的差别

本文探讨了C#编程中as关键字和is关键字在里氏替换原则下的差异。is关键字用于检查对象是否可以转换为指定类型,返回布尔值,而as关键字则会尝试转换并返回对象,失败时返回null。
摘要由CSDN通过智能技术生成
  1. is 返回bool类型,指示是否可以做这个转换(使用is并没有转换

  2. as 如果转换成功,则返回对象,否则返回null

上代码

    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Student();
            if (p is Teacher)
            {
                ((Teacher)p).TeacherSayHello();
            }
            else
            {
                Console.WriteLine("转换失败");
            }
//			运行结果,转换失败
            Student s = p as Student;//将person转换为student对象
            if (s!=null)
            {
                s.StudentSayHello();
            }
            else
            {
                Console.WriteLine("转换失败");
            }
            //运行为子类的方法
            Console.ReadKey();
        }
    }

父类

    class Person
    {
        public void PersonSayHello()
        {
            Console.WriteLine("我是父类!");
        }

    }

子类①

    class Teacher : Person
    {
        public  void TeacherSayHello()
        {
            Console.WriteLine("我是老师类!");
        }
    }

子类②

    class Student : Person
    {
        public  void StudentSayHello()
        {
            Console.WriteLine("我是学生类!");
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值