不知从几何时,我也开始变得懒了,以往为了学习的那股子斗劲也早已不在,是时候反思反思了。失败的检测成绩希望可以把我唤醒。
经过总结,在本书中大概学到了这些知识:
1、如果一个类可序列化,则它的子类和包含的各成员对象也一定可序列化
问题出在了子类,如果子类压根不能进行序列化操作,则会抛出异常。
2、如果要使用父类变量指向子类对象,就要满足多态的条件。
3、实现多态的方法:
虚方法实现多态和使用abstract关键字来修饰父类,在子类中使用override进行重新父类方法 来实现多态。
4、字典集合无下标,所以也就没有RemoveAt() 方法。
5、protected访问修饰符修饰的属性,在其子类中同样可以使用。
6、在C#中,( C)关键字用于子类的构造函数明确指明调用的父类的构造函数。
7、密封类不可以实现多态,解析:密封类不可以被继承,更不可能实现多态。
8、ArrayList集合索引自动维护,解析:
//分析如下C#代码片断,运行后输出的结果是(Google)。 ArrayList list = new ArrayList(); list.Add("Sina"); list.Add("Yahoo"); list.Add("Google"); list.RemoveAt(1); Console.WriteLine(list[1]);
9、检查某一个 文件是否存在,如果已经存在则直接打开,如果不存在则创建一个,可以使用FileMode的OpenOrCreate
10、结构体在定义时不可以直接为结构中的成员进行赋值;类则可以。
11、
//关于如下C#的代码,说法正确的是(C); public class A { string S1; protected string S2; protected void M1(){} } public class B : A { protected string S3; } a) 在A中可以访问S3 解析(父类中不可以访问子类受保护成员) b) 在B中可以访问S1 解析( 如果类中变量没哟访问修饰符修饰,默认访问修饰符是private) c) 在B中可以访问S2 解析(可以:因为其访问修饰符是protected类型) d) 在M1( ) 中可以访问S3 解析(不可以在父类方法中访问子类字段)
12、静态变量可以不出现在静态类中;在静态方法中不可以直接使用非静态成员(可以使用对象" . "出非静态成员进行使用);非静态方法中可以直接使用静态成员。
13、实现方法的重载: 方法名相同,参数不同,与返回值类型无关。
14、父类对象as子类对象,失败后,不会报错,返回值为null。
public class A{ } public class B : A { static void Main() { A a = new A(); B b = a as B; if (b == null) Console.WriteLine("null"); else Console.WriteLine(b is A); } }
时间: 2024-10-24 04:33:16