.NET笔试必备:访问修饰符、页面传值与递归算法解析

5星 · 超过95%的资源 需积分: 11 3 下载量 141 浏览量 更新于2024-07-21 收藏 77KB DOC 举报
"129道经典.NET笔试题涵盖了.NET框架中的关键知识点,包括访问修饰符、页面间数据传递、递归算法、委托和事件、方法重写与重载以及在B/S架构中处理变量传递等问题。这些题目旨在帮助面试者准备.NET相关的技术面试,提升对.NET基础和高级特性的理解。” 在.NET编程中,访问修饰符是控制类成员可访问性的重要工具。四种主要的访问修饰符包括: 1. `private`: 私有成员只能在定义它们的类内部访问,提供封装和隐藏实现细节的能力。 2. `protected`: 保护成员允许类内部以及任何继承自该类的子类访问,确保了继承安全。 3. `public`: 公共成员无任何访问限制,任何代码都能访问,通常用于接口或对外暴露的方法和属性。 4. `internal`: 内部成员仅限于同一命名空间内的类访问,提供了某种程度的封装,但比`private`更开放。 ASP.NET页面间传递值常见的方法: 1. QueryString: 通过URL的查询字符串传递参数,例如`?id=1`。 2. Session变量: 使用服务器端会话存储数据,可以在多个页面间保持状态,但需考虑会话过期问题。 3. Server.Transfer: 不改变浏览器URL,将请求转移到另一个页面,常用于内部页面跳转。 4. Cookies: 在客户端存储数据,但可能被禁用或删除,且有大小限制。 5. Application: 应用程序全局变量,所有用户共享,适用于少量全局数据存储,注意线程同步问题。 递归算法是解决斐波那契数列等数学问题的有效手段,如题目所示,第30位数可通过递归函数`Foo`计算得出,递归公式为F(n)=F(n-1)+F(n-2),当n小于等于0或等于1时返回1。 C#中的委托是一种类型,它代表方法的引用。它可以看作是函数指针,允许将方法作为参数传递给其他方法。事件是.NET中的一种特殊委托,用于订阅和触发事件,遵循发布/订阅模式,确保了代码的解耦。 方法的`override`和`overload`是两个不同的概念: 1. 重载(Overload)发生在同一个类中,通过不同的参数列表(数量、类型或顺序不同)来创建多个同名方法。 2. 重写(Override)发生在继承关系中,子类重写父类的虚方法,以提供特定的行为,确保多态性。 在B/S(浏览器/服务器)结构中,若不能使用Session、Cookie和Application,还有其他方式传递变量值: 1. URL隐藏字段:将数据编码后放入URL的表单字段中。 2. Viewstate:服务器端存储,但客户端可见,用于跨页保存数据。 3. 控件隐藏字段:将数据放入HTML隐藏控件中,只在客户端可见。 4. Postback数据:通过POST方式提交表单,数据随请求一起发送。 5. HTML5的localStorage或sessionStorage:客户端存储,适用于跨页面的数据共享,但有大小限制。 遍历页面上所有TextBox控件并清空其值,可以通过递归遍历控件树实现,示例代码: ```csharp foreach (Control control in this.Controls) { if (control is TextBox) { ((TextBox)control).Text = String.Empty; } else if (control.HasChildren) { foreach (Control child in control.Controls) { // 递归遍历子控件 child.Text = String.Empty; } } } ``` 这段代码会遍历当前Form的所有直接和间接子控件,如果是TextBox则清空其文本内容。