### .NET面试宝典知识点详解 #### 第一章:HTML & C# 基础 ##### 1. 访问修饰符的权限说明 - **Private**: 私有成员仅在其声明的类内部可见。这意味着只有类内的方法才能访问此类成员。 - **Protected**: 保护成员可以在类内部及其派生类中访问。它主要用于类层次结构中,以便基类的成员可以在派生类中使用,但不对外公开。 - **Public**: 公共成员对所有类都开放,没有任何访问限制。这是一种最开放的访问级别。 - **Internal**: 当前程序集内的任何类都可以访问此成员。这主要用于同一个项目的内部类之间共享信息,而不对外开放。 ##### 2. ADO.NET中的五个主要对象 - **Connection**: 用于建立应用程序与数据库之间的连接。它是所有其他操作的基础,例如查询、插入、更新和删除数据。`Close`方法关闭连接但允许重新打开,而`Dispose`方法则释放所有资源并阻止再次使用连接。 - **Command**: 用于向数据库发送SQL命令,包括查询、更新等操作。它依赖于`Connection`对象来与数据库交互。 - **DataAdapter**: 负责在数据库和`DataSet`之间传输数据。它通过`Command`对象执行SQL命令,并将结果填充到`DataSet`中。 - **DataSet**: 是一种内存中的数据存储形式,可以模拟数据库的一部分或全部。它包含一个或多个`DataTable`,每个`DataTable`又包含多个`DataRow`。`DataSet`可以保存数据结构和关系,独立于数据库运行。 - **DataReader**: 提供了一种快速、只读的方式读取数据流。它不将数据加载到内存中,而是通过游标逐行读取数据。这种方式适用于大量数据的读取,因为它不需要预先加载所有数据,从而减少了内存占用。 **ADO.NET使用模式**: - 使用`Connection`对象连接数据库。 - 使用`Command`或`DataAdapter`对象执行SQL语句。 - 结果通过`DataReader`或`DataAdapter`返回。 - `DataReader`适合读取大量数据,而`DataAdapter`更适合处理需要持久化存储的数据。 ##### 3. ASP.NET页面之间传递值的几种方式 1. **使用QueryString**: 通过URL的查询字符串传递值,例如`http://example.com/page.aspx?id=1`。 2. **使用Session变量**: 存储在服务器端的变量,可以在多个页面间共享数据。 3. **使用Server.Transfer**: 服务器端的页面跳转,可以传递视图状态和POST数据。 4. **使用Cookie**: 存储在客户端的小型文本文件,可以跨页面访问。 ##### 4. 面向对象的三个特性 - **继承性**: 类可以继承另一个类的属性和方法,从而扩展或重写功能。 - **封装性**: 将数据和方法组合在一个单元中,隐藏内部细节,提供接口来与对象交互。 - **多态性**: 同一接口可以有不同的实现方式。在C#中,可以通过覆盖(override)或接口实现来体现。 ##### 5. C#中的委托与事件 - **委托**: 委托是一种引用类型的数据类型,用于封装方法的引用。可以用来将方法作为参数传递给其他方法。 - **事件**: 事件是一种特殊的委托,用于封装方法的集合。它们通常用于通知机制,例如当某个条件发生时调用订阅的方法。 - **事件与委托的关系**: 事件是基于委托的,但在实现上有所限制。事件提供了一种更安全的方式来调用方法集合,只允许添加或移除订阅者,不允许外部修改或直接调用。 ##### 6. Override与重载的区别 - **重载(Overloading)**: 方法具有相同的名称但不同的参数列表。这使得可以在同一类中定义多个同名方法,以适应不同的使用场景。 - **重写(Overriding)**: 在派生类中重写基类的方法,以提供特定的行为。重写的方法必须与基类的方法具有相同的签名。 ##### 7. 属性与public字段的区别 - **属性**: 属性提供了一种访问类成员的方式,同时允许对赋值和获取过程进行控制。属性看起来像是字段,但实际上是由编译器生成的get和set方法。 - **Public字段**: 直接公开成员,没有任何控制逻辑。 - **调用set方法为一个属性设值**: - 当使用属性的set方法设置值时,可以在此过程中添加验证逻辑,确保值符合预期的要求。例如,可以检查年龄是否为正数。 - 但是,即使经过验证,通过get方法读取的值可能不是set方法中设置的原始值,因为属性可以在set和get之间进行额外的处理。
剩余45页未读,继续阅读
- 粉丝: 53
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助