C# .NET面试精华:面向对象特性及ADO.NET对象详解

需积分: 3 1 下载量 162 浏览量 更新于2024-07-28 收藏 468KB DOC 举报
本文档是一份针对C# .NET语言的面试题集,涵盖了面向对象编程的基础概念、ADO.NET的核心组件、访问权限控制、SQL查询以及ASP.NET页面间的数据传递等重要知识点。以下是详细解析: 1. **面向对象特性** 面向对象语言C#具有封装性(Encapsulation)、继承性(Inheritance)和多态性(Polymorphism)。封装性指的是将数据和操作这些数据的方法组合在一起,以保护数据的安全性;继承性允许子类继承父类的属性和行为,提高了代码复用性;多态性则允许不同的对象对同一消息做出不同的响应,增强了代码的灵活性。 2. **foreach遍历接口或方法** 在C#中,能用foreach遍历访问的对象通常需要实现`IEnumerable`接口或者声明`GetEnumerator()`方法,因为这些接口定义了序列化的遍历操作。 3. **ADO.NET主要对象** ADO.NET中的五个主要对象包括: - `SqlConnection`:用于建立到数据库的连接,是所有其他数据库操作的基础。 - `SqlCommand`:表示数据库中的SQL命令,用于执行查询、插入、更新和删除操作。 - `SqlDataReader`:用于从数据源逐行读取数据,一次只能读取一行,非持久性。 - ` SqlDataAdapter`:适配器类,用于填充`DataSet`或直接操作数据库,支持CRUD操作。 - `DataSet`:内存中的数据集合,类似数据库表,可用来存储和处理来自不同数据源的数据。 4. **访问修饰符** - `private`:限制成员只能在所在类内部访问。 - `protected`:仅限于所在类及其派生类的成员访问。 - `public`:任何地方的代码都可以访问。 - `internal`:在同一命名空间内的类可以访问,跨命名空间的访问受限。 5. **SQL查询示例** 一条SQL语句,假设表A的ID为自动增长的整数类型,用于取第31到第40条记录(不考虑ID是否连续): ```sql SELECT * FROM TableA WHERE ID >= 31 AND ID <= 40 ``` 6. **ASP.NET页面间数据传递** ASP.NET页面间传递值的方式有: - QueryString:通过URL参数传递。 - Session:存储在服务器端的会话变量,适用于状态管理。 - Cookies:小型数据存储在客户端浏览器上。 -ViewState:保存在服务器上的视图状态,适用于单个页面。 - PostBack和PostBackEventReference:用于WebForms中页面间控件的事件触发和数据传递。 7. **`Class1`示例程序输出结果** - `Add(i1)` 和 `AddWithRef(ref i1)` 两个方法都会增加 `i1` 的值,但 `Add` 是非静态方法,作用于类实例 `c` 的 `i` 属性,而 `AddWithRef` 是静态方法,作用于全局变量 `i1`。因此,`Add(i1)` 会增加 `c.i`,`AddWithRef(ref i1)` 会增加 `i1`。`StringConvert` 方法改变了 `str` 和 `c.str` 的值,`Main` 方法的输出取决于最后 `i1` 和 `str` 的值。 这份面试题集提供了全面的C# .NET知识点覆盖,适合准备求职的毕业生深入学习和准备面试。