C#知识总结一
1.C#运算符按功能分有哪些?按操作个数分有哪些?
答:按功能分:赋值运算符,算术运算符,关系运算符,逻辑运算符。按操作个数分:单目运算符(++,--),双目运算符(+,-,*,/.......),三目运算符(?:)。
2.While ,do-While,for 三种循环区别?
答:(1)While 和do-While 通常用于循环未知,for 通常用于循环已知。
(2)While 和do-While 循环变量的初始化通常在While 和do-While 循环之前完成,for在语法结构的表达式中完成。
(3)While和for 先判断后执行循环,do-While 循环先执行后判断。
3.Break 和Continue区别?
答:break 当满足条件时,程序退出当前语句结构,转而执行该语句结构之后的语句。continue 当满足条件时,终止本次循环,调至下一次循环。
4.什么是函数?
答:函数是指一段被封装起来的且能够实现一定功能的代码。
5.什么是类?什么是对象?
答:类是具有共同特征和行为的一类事物的统称。类是对象的具体实例,拥有具体特征和行为之后的类就称为对象。
6.什么是方法重载?方法重载的条件是什么?
答:同一个类中,多个方法使用同一个名字,该方法就被称为重载方法。方法重载条件:(1)同一个类中(2)方法名相同(3)参数的类型或个数不同。
7.构造函数与不同函数的不同点在那里?
答:(1)构造函数的名字必须与它的类名相同,且无返回类型(2)构造函数在使用NEW关键字创建对象时系统自动调用(3)构造函数的作用是在初始化对象时给对象成员福初值。
8.集合的特性?
答:(1)动态改变大小(2)可存储任意类型对象(3)提供一系列操作集合中对象的方法。
9.继承的特性?
答:(1)继承的传递性(2)继承的单根性(3)成员的访问性
10.is 和base
答:this():访问自身构造函数,this.成员名称:访问自身成员;base():在子类中访问父类构造函数,base.成员名称:在子类中访问父类成员。
11.访问修饰符
访问修饰符 | 说明 |
public | 公有的,访问不受限制的 |
private | 私有的,只能本类内部访问 |
protected | 受保护的,只能本类及其子类访问 |
internal | 内部的,只限于本项目内成员访问 |
protected internal | 内部保护的,只限于本项目或子类访问 |
12.什么是多态?多态的实现方式?
答:通过继承实现不同的对象调用相同的方法,表现出不同的行为,称之为多态。多态的实现方式:(1)隐藏父类方法(2)重写父类方法。
13.密封类(sealed),密封方法。
答:密封类可以用来限制类的扩展,防止派生子类,且不能用作父类。密封方法不允许子类再次重写的方法。
14.什么是抽象类(abstract)。抽象类的特点?
答:如果一个类中没有包含足够能描述具体对象的信息,那么就称为抽象类。特点:(1)抽象类可以不包含抽象方法,但含有抽象方法的类必须定义为抽象类(2)抽象方法不允许有方法体(3)子类继承于抽象类时必须重写抽象类中的所有抽象方法,除非子类也是抽象类。
15.抽象方法和虚方法区别
答:(1)抽象方法用abstract修饰,虚方法用virtual修饰(2)抽象方法只能定义在抽象类中,虚方法可以定义在除密封类以外的类中(3)抽象方法不允许有方法体,虚方法必须有方法体(4)抽象方法子类必须重写,虚方法子类可以重写
16.抽象类和接口(interface)区别
答:(1)抽象类用abstract修饰,接口用interface修饰(2)抽象类可以包含字段和已实现的成员,接口不能有字段,只能包含未实现的成员(3)抽象类中子类通过override实现抽象方法,接口子类直接实现所有成员。
17.什么是序列化,什么是反序列化?
答:序列化是将对象的状态信息转换为可存储或传输的形式过程。反序列化是将流转换为对象的过程。