C#与ASP.NET面试必备知识:访问修饰符、页面传值与委托解析

需积分: 9 19 下载量 164 浏览量 更新于2024-07-31 1 收藏 174KB DOC 举报
"asp.net/C#面试题大全,46页的内容涵盖了asp.net和C#的基础及进阶面试问题,旨在帮助求职者准备面试,找到满意的工作。" 在asp.net/C#的面试中,掌握以下几个关键知识点是至关重要的: 1. 访问修饰符的理解: - `private`:私有成员,只允许在定义它的类内部访问,提供封装性,保护数据不被外部直接操作。 - `protected`:保护成员,除了在定义它的类中,还可以在继承它的子类中访问,用于提供对继承类的保护。 - `public`:公共成员,任何地方都可以访问,通常用于暴露类的接口。 - `internal`:在同一个命名空间内的类可以访问,提供了某种程度的封装,限制了外部访问。 2. ASP.NET页面间传递值的方法: - QueryString:通过URL参数传递,例如 "?id=1",但要注意安全性,因为URL可见。 - Session:在服务器端存储,生命周期较长,适用于跨页面传递大量或敏感数据,但会占用服务器内存。 - Server.Transfer:在服务器内部转移请求,不会改变浏览器URL,适合页面逻辑紧密相关的情况。 - Cookies:客户端存储,可跨页面传递,但易被篡改,且存在大小和数量限制。 - Viewstate:页面回发时保持状态,适用于只在服务器端操作的数据。 3. 递归算法应用: - 本例展示了计算斐波那契数列的递归实现。递归是一种函数调用自身的技术,用于解决具有自相似性质的问题。这里,Foo函数根据给定的索引返回斐波那契数列的第i项。 4. 委托和事件: - C#中的委托是一种类型,它可以引用具有相同签名的方法。委托可以理解为指向方法的指针,允许将方法作为参数传递,常用于事件处理。 - 事件是基于委托的,它提供了一种安全的方式来订阅和触发事件,避免了非预期的代码执行。在asp.net中,控件的事件处理通常就是通过委托实现的。 5. override与重载的区别: - 重载(Overloading)发生在同一类中,通过不同的方法签名(名称相同,参数列表不同)创建多个方法。编译时确定调用哪个方法。 - override(覆盖)则发生在继承关系中,子类重写基类的虚方法,保持接口一致,但提供不同的实现。运行时确定调用哪个方法。 6. B/S系统中传递变量值的替代方法: - 当Session、Cookie和Application不可用时,可以使用ViewState、Control State、Hidden Field等来在页面回发中保留数据。例如,遍历页面上的TextBox控件并清空其值: ```csharp foreach (TextBox txt in this.Page.Form.Controls.OfType<TextBox>()) { txt.Text = string.Empty; } ``` 这些知识点在asp.net/C#面试中经常出现,深入理解和熟练掌握它们对于应聘者来说至关重要,能有效提高面试成功的机会。