C#面试必备知识点:面向对象、委托、序列化与ASP.NET

需积分: 10 8 下载量 183 浏览量 更新于2024-08-01 收藏 251KB DOC 举报
"全面的C#面试题,涵盖了C#、ASP.NET以及C语言的相关知识点,帮助面试者准备面试" 1. 面向对象特性:C#是一种面向对象的编程语言,支持继承、封装和多态性。继承允许一个类(子类)继承另一个类(父类)的属性和方法;封装是将数据和操作数据的方法绑定在一起,对外提供有限的接口;多态性则是指同一种行为可以有不同的表现形式。 2. foreach遍历:在C#中,可以通过foreach循环遍历实现了_IEnumerable接口或声明_GetEnumerator方法的类型,如数组、集合、列表等。 3. 三元运算符:C#中的三元运算符是`条件 ? 结果1 : 结果2`,它根据条件的真假返回不同的结果。 4. 装箱与拆箱:当基本类型的值(如整数a)赋给一个object对象时,会发生装箱操作,将基本类型转换为对象。如果需要从object类型回转为基本类型,会进行拆箱操作。 5. 类成员访问性:C#中类成员有四种访问形式,分别是private(私有)、protected(受保护)、internal(内部)和public(公共),题目中提到的3种可能是指忽略掉不常见的protected internal。 6. 常量与静态:常量(const)成员总是静态的,不需要声明为static,因此`public static const int A = 1;`应去掉static。 7. 浮点数到整数转换:将float f = -123.567F转换为int i时,会截断小数部分,因此i的值是-123。 8. 自定义运算符:如果声明了自定义的相等运算符(==),通常还需要重载不等于运算符(!=),并确保Equals和GetHashCode方法的一致性。 9. 委托声明:在C#中,使用关键字`delegate`来声明委托,委托可以视为指向方法的引用。 10. ASP.NET用户控件:所有自定义用户控件都需继承自System.Web.UI.UserControl类,以便在ASP.NET环境中使用。 11. .NET垃圾回收:.NET的托管代码中,垃圾回收(GC)机制自动管理内存,避免了内存泄露的问题。 12. 抽象与虚拟的组合:抽象(abstract)和虚拟(override)不能同时用于同一个方法,因为抽象方法不需要具体实现。 13. 私有构造函数:当类T只有私有实例构造函数时,不能从T派生新类,也不能在T的外部直接创建实例。 14. switch语句:case后面需要跟具体的值或关键字default,而`case ():`是无效的,应该修正为`default:`。 15. Page类继承:在.NET Framework中,System.Web.UI.Page类可以被继承,用于创建自定义的ASP.NET页面。 不定项选择题: B. 一个类可以实现多个接口,这是正确的,因为C#支持多重继承(接口间)。 C. 接口不能被实例化,接口只定义行为,不包含实现,因此不能直接创建接口实例。 以上内容详细解释了C#面试题中涉及的关键知识点,包括面向对象、遍历、运算符、装箱拆箱、访问性、常量、浮点数转换、委托、继承、垃圾回收、抽象与虚拟、构造函数、switch语句以及接口的使用。这些知识对于理解和解答C#相关的面试问题至关重要。