已采纳回答 / 慕婉清0528030
先在一个你想要注册事件类中提前写好一个委托方法,例如delegate void Handler【委托类型】();然后再写一个事件声明,例如public static event Handler【委托类型】 NewDog【事件名】;事件声明使用static,便于直接添加事件,也就是【类名.事件名 += 想要注册的方法】,取消事件是【类名.事件名 -=想要注册的方法 】具体步骤可以这样:1.delegate void Handler【委托类型】(); ...
2019-07-10
已采纳回答 / 慕先生0136867
结果也不一样,,,在子类中用了new,如果调用的是基类,得到的结果是基类的结果;如果是用了虚方法,那么即使调用基类,得到的也是派生类的结果。
2018-11-23
已采纳回答 / 慕沐0087746
就相当于:动物 a = new 鸟();//我要一个动物就行(动物 a),给了一只鸟(new 鸟())a.吃();//我们知道a是动物,动物都能吃,所以a.吃()没有问题。a.飞();//这句话就有问题了,因为不是所有的动物a都能飞();所以,动物a是不能访问鸟的飞()的。
2018-07-04
已采纳回答 / CashQQJ
题主所指的new是子类里隐藏父类方法的关键字,不是新建实例关键字。virtual是虚函数关键字,修饰父类里的函数,子类可以用override重写该函数。virtual一般用在父类里,new一般用在子类里,其是成员修饰符。public是访问修饰符,用来限制访问权限。在c#里还有一种修饰符是类修饰符,例如:abstract。书写顺序习惯上一般是:访问修饰符 + 类修饰符,或者:成员修饰符 + 类修饰符但是不按照上面的顺序书写,编译器也不会报错,只是不太常用而已。
2018-04-18
已采纳回答 / 汤姆oldTom
因为oi是Object类型的变量(或者叫引用),所以可以先将它转化为字符串类型后再输出打印,然后oi这个变量输出的3就是字符串类型的而非Object类。
2018-04-15
已采纳回答 / Sneakerhead
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{ //public class Pet { // public Pet(string name) { // _name = name; // } // ...
2017-12-28
已采纳回答 / 慕粉3655233
Interface1[] intt = new Interface1[] { new Dog("dddddd") }; for (int i = 0; i >h intt.Length; i++) { intt[i].GGG(); } interface Interface1 { ...
2017-10-17
已采纳回答 / Posin丶biting
类转换接口时,是因为该类继承了该接口,所以可以调用已经实现了的接口方法。而自定义转换是要两个派生类之间的转换,是无法调用对方的重写的方法。如果是基类的话是可以直接将派生类强制转换来调用派生类的方法的
2017-08-08