12.15C#

(知识点复习,补漏) 

try-catch语法 

 try
            {
                int temp = myArr[4];
            }
            catch(IndexOutOfRangeException e)//捕捉的异常类型(可以有多个catch)
            {
                //出现这个异常的时候,怎么处理
                Console.WriteLine("出现了数组下标越界的异常");
            }
            finally
            {
                Console.WriteLine("不管是否出现异常,都会执行");
            }

检测用户的输入是否合法

while (true)//死循环,靠底下break
            {

                try
                {
                    n1 = Convert.ToInt32(Console.ReadLine());
                    n2 = Convert.ToInt32(Console.ReadLine());
                    //因为try里代码出错就会跳到catch里,所以上面无异常就会执行break
                    break;//跳出循环,只要输入不合法就一直循环
                }
                catch (FormatException e)
                {
                    Console.WriteLine("你输入的数据,不符合规则,请重新输入");
                }

            }

            Console.WriteLine(n1 + n2);

 光声明是不够的,只有实例化后这个对象才真正存在

            Customer c2;//声明对象
            c2 = new Customer();//实例化一个对象

Customer c1 = null ; 

 这样给一个null也不行,还是相当于光声明未赋值

 public int Age { get;private set; }
        //可以添加访问修饰符,单独控制只读只写
        //自动属性,自动创建private int age;成员
 

匿名类型 

var age2 = 45;//根据赋值确定类型
            age2 = 90;
            //age2 = "";(赋值之后类型就确定了)

 ⾯向对象-继承 继承是什么?

在上⼀节课中学习了如何定义类,⽤类当做模板来声明我们的数据。 很多类中有相似的数据,⽐如在⼀个游戏中,有Boss类,⼩怪类Enemy,这些类他们有 很多相同的属性,也有不同的,这个时候我们可以使⽤继承来让这两个类继承⾃同⼀个 类。

继承的类型

实现继承: 表⽰⼀个类型派⽣于⼀个基类型,它拥有该基类型的所有成员字段和函数。 在实现继 承中,派⽣类型采⽤基类型的每个函数的实现代码,除⾮在派⽣类型的定义中指定重写 某个函数的实现代码。 在需要给现有的类型添加功能,或许多相关的类型共享⼀组重 要的公共功能时,这种类型的继承⾮常有⽤。

接⼝继承: 表⽰⼀个类型只继承了函数的签名,没有继承任何实现代码。 在需要指定该类型具有 某些可⽤的特性时,最好使⽤这种类型的继承。

多重继承

⼀些语⾔(C++)⽀持所谓的 “多重继承”,即⼀个类派⽣⾃多个类。 使⽤多重继承的优点是 有争议的:⼀⽅⾯,毫⽆疑问,可 以使⽤多重继承编写⾮常复杂、 但很紧凑的代码,。另⼀⽅ ⾯,使⽤多重实现继承的代码常常很难理解和调试。 如前所述,简化健壮代码的编写⼯作是 开发 C#的重要设计 ⽬标。 因此,C#不⽀持多重实现继承。 ⽽ C#允许类型派⽣⾃多个接 Unity 1143 C#编程-第⼆季-⾯向对象 16 ⼝— — 多重接⼝继承。 这说明,C#类可以派⽣⾃另⼀个类和任意多个接⼝。更准确地说, System.Object 是⼀个公共的基类,所 以每个 C#(除了Object类之外)都有⼀个基类,还可以 有任意多个基接 ⼝。

this和base关键字

this(base)作⽤:

1、IDE给提⽰

2、区分局部变量和字段 Unity 1143 C#编程-第⼆季-⾯向对象 17 this可以访问当前类中定义的字段,属性和⽅法,有没有this都可以访问,有this可以让IDEVS编译器给出提⽰,另外当⽅法的参数跟字段重名的时候,使⽤this可以表明访问的是类 中的字段,base可以调⽤⽗类中的公有⽅法和字段,有没有base都可以访问,但是加上 base.IED⼯具会给出提⽰,把所有可以调⽤的字段和⽅法罗列出来⽅便选择

(部分内容来自siki学院C#基础编程课程) 

public Boss(int attack,int hp,int speed)//这是一个子类的构造函数
        {
            this.attack = attack;//子类里的attack
            //this.hp = hp;
            //this.speed = speed;
            base.hp = hp;//子类里有与父类重名的hp,这里base访问的是父类里的hp
            base.speed = speed;
            
        }

不过也没必要这么搞,重写方法有,变量名何必重复?

(真是学无止境啊) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值