-
六大原则,23种设计模式查看全部
-
delegate void actcute();//这个代理是无参,无返回值的代理,所代理的方法也是无参,无返回值。 delegate string wang(int a); //这是一个代理有参数,有返回值的代理。 actcute del=null;//给初始化的代理变量赋值 wang de2= null; dog a = new dog("AA"); cat b = new cat("BB"); del= a.yao;//这里的方法不能加圆括号,主要是因为这里是赋值,而并非调用, del += b.hu;//这里的+=中间是不能有空格的。如果没有+号,则后一个方法会覆盖前一个方法。 del(); de2 = a.myage; string cc= de2(3);//传入数值并且接受结果。 Console.WriteLine(cc);查看全部
-
接口 1、接口就是制定一组函数成员,而不实现他们的引用类型,用interface声明。接口函数不能用其他访问修饰符修饰,默认为public。 2、接口用来被实现 例如Cat:ICatchMice{ //实现接口函数 } 3、一个类可以实现多个接口,当一个类同时继承基类和实现接口时,应该将基类写在最前面,用逗号隔开 4、一个类实现接口时,必须实现接口声明的函数。 5、可以通过接口引用调用接口中的方法,也可通过实例调用接口方法。例子 爬树为一个接口,抓老鼠为一个接口,当猫这个类实现这两个接口时, Cat c=new Cat("tom"); 爬树 ci=(爬树)c; c.pashu();//通过实例调用接口方法 ci.pashu();//通过接口引用调用接口方法查看全部
-
密闭类和密闭方法 1、密闭类:有些类不希望其他人通过继承来修改,禁止产生派生类。 密闭方法;禁止他人重写该方法。 2、用sealed修饰类就是密闭类,修饰方法就是密闭方法 3、若派生类中的重写方法(用override修饰的方法)不想再被重写,则可以同时用override和sealed进行修饰。查看全部
-
接口的强制转换查看全部
-
一个设计原则:依赖倒置原则。换句话说就是程序涉及要依赖于抽象类(父类),而不依赖于具体类(子类)。这样做的一个好处就是程序具有很大的可扩展性。 虚方法:声明为virtual的方法就是虚方法。基类的虚方法可以在派生类中使用override进行重写。 多态:通过指向派生类的基类引用,调用虚函数,会根据引用所指向派生类的实际类型,调用派生类中的同名重写函数。 override与overload: override:在派生类中重写虚方法; overload:重载。 关于虚方法: (1)重写虚方法必须具有相同的可访问性,并且基类 方法不能是private (2)不能重写static方法或者非虚方法 (3)方法、属性、索引器、事件,都可以声明为virtual或者override查看全部
-
new:实例化对象;覆盖的时候在方法前加new防止报错(隐藏方法) override:当用基类创建一个子类对象时,如果你要用到子类中的方法,就必须在基类中定义一个虚方法,然后在子类中用override重写这个方法,否则会报错,因为基类中不存在这个方法也就找不到子类中的方法。如果用子类创建一个对象时,则不用写虚方法。查看全部
-
new是隐藏父类方法,override是重载父类方法,区别就在调用的时候。如果父类类引用到派生类对象,通过父类引用去调用隐藏方法(new的),则调用基类方法;如果调用override同名方法,则调用的是派生类方法。查看全部
-
C#中只能单继承 每个类只能继承一个父类,父类可以向上继承祖父类,直到object类 子类继承父类语法: class childclass:parentclass { }查看全部
-
隐藏方法:(基类中的任何成员都不能删除,但可以用与基类成员名称相同的成员来屏蔽基类成员) (1)通过在派生类中定义同名变量隐藏基类中的成员——隐藏方法 (2)语法细节: 屏蔽数据成员:在派生类中声明名称和类型相同的成员。 屏蔽函数成员:在派生类中声明新的带有相同函数签名的成员(参数列表、函数名相同,但并不包括返回类型) 让编译器知道:可以在子类中,在要隐藏的数据或方法前添加new关键字,否则会有报警。查看全部
-
C#中只有单继承,所有的子类最终都继承自object类,子类继承父类语法: 子类名 : 父类名{}查看全部
-
事件声明查看全部
-
lambda表达式查看全部
-
List查看全部
-
动态数组ArrayList查看全部
举报
0/150
提交
取消