S2深入.NET编程总结

不知从几何时,我也开始变得懒了,以往为了学习的那股子斗劲也早已不在,是时候反思反思了。失败的检测成绩希望可以把我唤醒。

经过总结,在本书中大概学到了这些知识:

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

S2深入.NET编程总结的相关文章

ubuntu shell编程笔记

and 命令 if  [   A  -a   B ] then else fi set command set  these are parameters $1 set strings str="A is a" echo "$str" a=30 b=15echo `expr a + b`echo `expr a - b`echo `expr a \* b`echo `expr a / b`echo `expr a % b` The Internal Field Se

有关于多态的一些拓展知识——你值得拥有

多态,顾名思义就是有多种的形态.就像每个人对每件事物做出的不一样的选择. 关于多态在这里想表达的第一个知识点就是里氏替换及多态的应用: 里氏替换是软件设计时应该遵守的重要原则之一!!有了里氏替换法则才能继承复用成为可能,只有当子类替换掉父类时,软件的功能不受影响,父类被正常使用,而子类也能够在父类的基础上增加新的行为. 下面写一个例子: //父类 鸟 public class Bird { //飞行速度 public double Speed{get;set;} //飞 public void

C/C++ 笔试题

/////转自http://blog.csdn.net/suxinpingtao51/article/details/8015147#userconsent# 微软亚洲技术中心的面试题!!! 1.进程和线程的差别. 线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的独立单位,线程不拥有系统资源,但可以访问

苏浪浪 201771010120 《面向对象程序设计(java)》第9周学习总结

实验九异常.断言与日志 实验时间 2018-10-25 1.实验目的与要求 (1) 掌握java异常处理技术: (2) 了解断言的用法: (3) 了解日志的用途: (4) 掌握程序基础调试技巧: 2.实验内容和步骤 实验1:用命令行与IDE两种环境下编辑调试运行源程序ExceptionDemo1.ExceptionDemo2,结合程序运行结果理解程序,掌握未检查异常和已检查异常的区别. //异常示例1 public class ExceptionDemo1 { public static voi

徐思201771010132《面向对象程序设计(java)》第九周学习总结

一.理论知识部分 异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行. Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置. 程序中出现的常见的错误和问题有:用户输入错误:设备错误:物理限制:代码错误. Java把程序运行时可能遇到的错误分为两类:非致命异常:通过某种修正后程序还能继续执行.这类错误叫作异常.如:文件不存在.无效的数组下标.空引用.网络断开.打印机脱机.磁盘满等. Java中提供了一种独特的处理异常的机制,通过异常来处理程序设计中出现的错误

狄慧201771010104《面向对象程序设计(java)》第九周学习总结

实验九异常.断言与日志 实验时间 2018-10-25 一.知识点总结: (一)处理错误: 1.可能出现的问题获错误: 用户输入错误.设备错误.物理限制.代码错误. 2.异常具有自己的语法和特定的继承结构: 异常分类:异常对象都是派生于Throwable类的一个实例,但在下一层立即分为两个支:Error和Exception. (二)异常分类: 1.非致命异常:通过某种修正后程序还能继续执行. 这类错误叫作异常.如:文件不存在.无效的数组 下标.空引用.网络断开.打印机脱机.磁盘满等. Java中

201771010102 常惠琢 《2018面向对象程序设计(Java)》第9周学习总结

实验九 异常.断言与日志 实验时间 2018-10-25 1.实验目的与要求 (1) 掌握java异常处理技术: (2) 了解断言的用法: (3) 了解日志的用途: (4) 掌握程序基础调试技巧: 2.实验内容和步骤 实验1:用命令行与IDE两种环境下编辑调试运行源程序ExceptionDemo1.ExceptionDemo2,结合程序运行结果理解程序,掌握未检查异常和已检查异常的区别. //异常示例1 public class ExceptionDemo1 { public static vo

如何使用串口来给STM32下载程序

前言 第一次学习STM32的时候,不知道有调试器这个东西,所以一直是通过串口来给STM32下载程序,下载速度也还算可以,一般是几秒钟完成.后来用了调试器,可以直接在Keil环境下进行下载,而且还可以进行在线调试,所以后来就很少使用串口来下载程序了.前几天在uFUN试用群里看到有几个朋友在使用串口下载程序时,遇到了各种各样的问题,所以在这里简单介绍一下如何通过串口来给STM32下载程序. STM32的启动模式介绍 从STM32参考手册上,可以查阅到,STM32的启动模式,共有下列三种,可以通过BO

S2 深入.NET和C#编程 笔试测试错题积累

---恢复内容开始--- <深入.NET平台和C#编程>内部测试题-笔试试卷错题积累 1: 1) 以下关于序列化和反序列化的描述错误的是( C). a) 序列化是将对象的状态存储到特定存储介质中的过程 b) 二进制格式化器的Serialize()和Deserialize()方法可以分别用来实现序列化和反序列化过程 解析:BinaryFormatter c) 如果一个类可序列化,则它的子类和包含的各成员对象也一定可序列化 问题出在了子类,如果子类压根不能进行序列化操作,则会抛出异常 d) 标识一