.NET面试重点:访问修饰符与页面传值解析

需积分: 9 4 下载量 35 浏览量 更新于2024-07-31 收藏 93KB DOC 举报
"net 面试题集锦.doc" 在.NET框架中,访问修饰符是用于控制类成员(如字段、属性、方法等)可见性的关键元素。以下是对四种主要访问修饰符的详细解释: 1. **private**:私有成员只能在定义它们的类内部被访问。这是默认的修饰符,确保了类的内部实现细节对外部代码隐藏,有助于实现封装原则。 2. **protected**:保护成员允许类内部以及继承自该类的子类访问。这种修饰符常用于设计需要子类扩展的基类,子类可以访问和修改基类的受保护成员。 3. **public**:公共成员可以在任何地方访问,没有访问限制。通常,接口、公共类和类的公共方法需要这个修饰符,以便其他代码能够使用它们的功能。 4. **internal**:内部成员仅限于同一命名空间内的类访问。这提供了一种限制访问级别的机制,允许在组件内部共享数据,同时防止外部代码直接访问。 接下来,我们讨论ASP.NET中页面间传递值的方法: 1. **QueryString**:通过URL查询字符串传递数据,例如`"?id=1"`。这种方法简单直观,但数据可见且有限制,不适合传输敏感信息。 2. **Session变量**:在服务器端存储变量,并在多个页面间共享。Session是基于会话的,可以存储大量数据,但会占用服务器资源,且在会话结束时数据丢失。 3. **Server.Transfer**:服务器内部转移,不会引发新的HTTP请求,页面状态保持不变。这种方式效率高,但客户端无法察觉到页面转移。 关于编程问题: 3. **斐波那契数列**:递归算法实现第30位数,如示例所示。递归函数`Foo(i)`根据斐波那契数列的定义,计算第`i`个数,通过调用自身来解决子问题。 4. **C#中的委托和事件**:委托是类型安全的函数指针,可以将方法作为参数传递。事件是基于委托的,它提供了一种发布/订阅模式,使得对象可以通知其他对象当特定事件发生时。 5. **override与重载**:重载(Overloading)是通过方法名相同但参数列表不同来实现的,允许在同一个类中定义多个方法。而`override`关键字用于子类重写基类的虚方法,以提供不同的实现或增强功能。 6. **在B/S系统中传递变量值**:除了Session、Cookie和Application,还可以使用ViewState、TempData、隐藏字段、URL路由参数等方法。 7. **遍历页面上的TextBox控件**:使用`Controls`集合遍历窗体中的所有控件,通过类型检查找到TextBox控件,并将其值设为空字符串。 这些面试题涵盖了.NET开发中的基础概念,包括面向对象的访问修饰符、Web开发中的数据传递、递归算法、委托和事件的理解,以及在Windows Forms或ASP.NET中操作UI控件的方法。掌握这些知识点对于.NET开发者来说至关重要。