1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 在同一命名空间内可以访问。 2 .列举ASP.NET 页面之间传递值的几种方式。 答. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer 【ASP.NET面试题详解】 1. 访问修饰符的理解: 在C#中,访问修饰符用于控制类成员的可见性。`private`修饰的成员仅在类内部可访问,提供封装。`protected`成员允许类本身及其子类访问,确保了继承安全性。`public`修饰的成员对所有代码开放,无访问限制。`internal`则限定在同一命名空间内的类才能访问,用于库设计时的封装。 2. ASP.NET页面间传递值的方法: - **QueryString**:通过URL中的查询字符串传递,如`response.Redirect("?id=1")`。 - **Session**:利用服务器端的会话对象存储,可以在多个页面间持久化数据,`Session["key"] = value`。 - **Server.Transfer**:服务器内部转移,不更新浏览器地址,`Server.Transfer("TargetPage.aspx", true)`。 3. 递归实现斐波那契数列: 斐波那契数列的第n项可以通过前两项之和得到。上述代码中,`Foo`函数采用递归实现,基础情况是n小于等于0或2时返回1,否则返回前两项的和。 4. 委托与事件: - **委托**是C#中的一种类型,可存储对方法的引用,类似于函数指针。可以将方法作为参数传递给其他方法。 - **事件**是特定类型委托的实例,通常用于订阅和发布通知机制,是多态和安全的委托使用方式。 5. `override`与方法重载的区别: - **重载**(Overload)是同一个类中方法名相同但参数列表不同的多个方法,编译时根据参数列表决定调用哪个方法。 - **override**(重写)是子类对基类中虚方法的重新定义,运行时根据对象的实际类型决定调用哪个版本。 6. 不使用Session、Cookie、Application传递变量的替代方案: - **ViewState**:在服务器端存储状态信息,只适用于单个页面。 - **HiddenField**:隐藏字段可在表单提交时传递数据,但客户端可篡改。 - **Url参数**:类似于QueryString,但信息不显示在地址栏。 - **TempData**:在请求之间临时存储数据,适合跨页面短暂传递。 7. 遍历并清空TextBox控件的值: 代码中通过循环遍历当前控件集合,判断控件类型为TextBox时,将其值设为空字符串。 8. 冒泡排序算法实现: 内部嵌套循环实现相邻元素比较并交换,外层循环控制比较次数,直到数组排序完成。 9. C#中索引器的实现: 索引器允许类像数组一样通过索引访问其成员,可以使用任意类型作为索引,只需实现`this[索引]`语法。 10. 计算交错序列和: 给定序列1-2+3-4+...+m,可以通过奇偶项判断正负,使用循环计算累加结果。 11. 三层架构的B/S系统开发: - **数据访问层(DAL)**:处理数据库操作,如CRUD(创建、读取、更新、删除)。 - **业务逻辑层(BLL)**:包含业务规则和逻辑,负责验证、处理业务需求。 - **表示层(Presentation Layer)**:用户界面,与用户交互,调用BLL执行业务。 这种分层设计有助于模块化、维护性和扩展性,但会增加开发成本和复杂性。 12. 示例代码分析: 类A和B展示了继承与虚方法的概念。B类继承自A类,并重写了`PrintFields`方法。创建B类实例`new B()`时,将调用B类的`PrintFields`,输出x和y的值。 以上内容详细解释了ASP.NET面试中涉及的一些关键知识点,包括访问修饰符、页面间通信、递归算法、委托与事件、面向对象特性、程序设计模式等。这些知识是ASP.NET开发者必须掌握的基础。
剩余9页未读,继续阅读
- 粉丝: 4
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助