C#面试秘籍:属性、委托与递归解题

需积分: 9 1 下载量 62 浏览量 更新于2024-09-20 收藏 62KB DOC 举报
摘要信息:“130道面试题(毕业生的武功秘籍)包含了C#编程语言的相关概念,如property与attribute的区别、ASP.NET页面间传递值的方法、递归算法的应用、委托和事件的理解、override与重载的概念差异,以及在B/S结构系统中传递变量值的替代方案。这些问题覆盖了基础语法、面向对象编程、Web开发等多个方面,是准备面试或巩固基础知识的重要参考资料。” 详细知识点: 1. property与attribute的区别: - Property是C#中用于封装类的成员变量,提供访问器(getter和setter),控制对数据的访问。它们是类的公共接口,允许外部代码以安全和受控的方式读取和设置数据。 - Attribute则是一种元数据,用于在编译时或运行时提供对象的附加信息。它允许我们在代码中添加注解,比如标记类、方法、字段等,这些信息可以被编译器或运行时环境使用。 2. ASP.NET页面间传递值的几种方式: - QueryString:通过URL参数传递,例如"?id=1"。 - Session:在服务器端存储数据,通过SessionID跟踪用户状态。 - Server.Transfer:服务器内部转移请求,不改变浏览器URL。 - ViewState:存储在HTML隐藏字段中,用于在页面回发时保持状态。 - Cookies:客户端存储数据,但可能受到禁用或限制。 - HiddenField:HTML隐藏字段,可用于页面间传递少量数据。 3. 递归算法求斐波那契数列: - 斐波那契数列是一个序列,其中每个数字是前两个数字的和。示例代码展示了如何使用递归计算第30位数。递归算法通常包括基本情况(终止条件)和递归情况(调用自身解决子问题)。 4. 委托与事件: - 委托是C#中的一种类型,它封装了对方法的引用,允许将方法作为参数传递或存储。它是回调和事件处理的基础。 - 事件是特定类型的委托,用于在对象之间通信,通常用于发布者/订阅者模式。事件是委托的特殊形式,确保只有订阅者能触发事件。 5. override与重载: - 重载(Overload)发生在同一个作用域内,通过不同的参数列表创建多个同名方法,允许根据参数的不同调用相应的方法。 - override(Override)是子类对父类虚方法的重写,保持方法签名不变,以实现不同的行为。 6. B/S结构中不使用常见方法传递变量值: - 使用ViewState或HiddenField存储变量,这两个都是服务器端的数据存储方式,不会跨页面。 - 利用查询字符串或表单提交,但不作为主要传递手段,因为数据可见且易篡改。 - 在服务器端创建自定义的路由或者使用路由参数来传递数据。 - 利用数据库临时存储,然后在后续请求中获取。 7. 遍历页面TextBox控件并赋值: - 示例代码展示了如何遍历Windows Forms应用程序中的TextBox控件,但在ASP.NET Web Forms中,遍历控件树的方式类似,但需要使用FindControl方法来查找特定类型的控件,并设置其Text属性为空字符串。 这些面试题涵盖了C#编程和ASP.NET开发的关键知识点,对于理解和掌握这些技术非常有帮助。通过解答这些问题,可以深入理解C#语言特性和Web开发的基本原理。