C#面试必备:继承、封装、多态与ADO.NET对象

需积分: 0 4 下载量 67 浏览量 更新于2024-11-07 收藏 89KB DOC 举报
"C#面试题总结,涵盖面向对象特性、接口实现、ADO.NET对象、数据绑定、运算符、类修饰符、委托、密封类、用户控件、序列化、垃圾回收等多个知识点。" 在C#编程语言中,面试题通常涉及核心概念和技术,以下是对这些知识点的详细解释: 1. 面向对象的三大特性:继承性、封装性和多态性。继承性允许子类继承父类的属性和方法;封装性是将数据和操作数据的方法封装在一个类中,防止外部直接访问;多态性是指同一消息可以被不同类型的对象响应,实现代码的复用和灵活性。 2. foreach循环依赖于对象实现了IEnumerable接口或声明了GetEnumerator方法,这使得可以迭代集合中的元素。 3. ADO.NET中的关键对象包括Command(用于执行数据库命令)、Connection(建立与数据库的连接)、DataSet(离线数据存储)、DataAdapter(在数据库和DataSet之间传输数据)和DataReader(提供只向前的、只读的数据流)。 4. <%#%>和<%%>的区别在于,前者用于数据绑定,将数据源绑定到页面元素;后者用于在服务器端编写代码块。 5. C#的三元运算符是`条件 ? 表达式1 : 表达式2`,根据条件的真假决定执行哪个表达式。 6. 类成员的访问修饰符有四种:private(私有,仅限类内部访问),protected(受保护,类内部及子类可访问),public(公共,无访问限制),以及internal(程序集内可见)。 7. const成员必须是静态的,因此`public static const int A = 1;`中的`static`是多余的,应该去掉。 8. 当将浮点数`-123.567F`转换为整数`int i = (int)f;`时,会进行截断处理,`i`的值将是`-123`。 9. 如果仅声明了相等运算符`==`,而没有提供不等运算符`!=`,可能会导致代码的不完整,因为某些情况可能需要比较不等性。 10. 委托是C#中的一种类型,用于封装方法引用,关键字是`delegate`。 11. 使用`sealed`修饰的类不能被其他类继承,但可以被实例化。 12. ASP.NET中的自定义用户控件需要继承自`System.Web.UI.UserControl`类,以便在网页中重用和自定义功能。 13. .NET中,可序列化的类通过`[Serializable]`特性标记,允许对象的状态被保存和恢复。 14. .NET的托管代码由垃圾回收(GC)管理内存,避免了内存泄漏的问题。 不定项选择题涉及的知识点包括接口的使用和ADO.NET操作数据库的方法: 1. 接口不能包含虚方法,也不能被实例化,但可以实现多个接口(选项B和C正确,选项A和D错误)。 2. 从数据库读取记录,可以使用ExecuteNonQuery(执行非查询操作,如插入、更新、删除)、ExecuteScalar(返回单个值)、Fill(填充DataSet或DataTable)和ExecuteReader(返回数据读取器)方法。因此,正确答案是B、C和D。 简述访问权限修饰符: - `private`:私有成员,只有类内部可以访问。 - `protected`:保护成员,允许类内部和其子类访问。 - `public`:公共成员,可以在任何地方访问,无访问限制。 - `internal`:程序集内可见,仅限同一程序集内的类访问。 掌握这些知识点对于C#开发者来说至关重要,它们涵盖了语言基础、面向对象设计、数据库交互以及ASP.NET开发的核心概念。在面试中,能够熟练运用和理解这些知识将极大地提高应聘者的竞争力。