C#面向对象与关键字详解:委托、事件、override与重载

5星 · 超过95%的资源 需积分: 25 28 下载量 147 浏览量 更新于2024-11-23 1 收藏 47KB DOC 举报
"C#.net期末复习题" C#是一门强大的面向对象的编程语言,它在.NET框架下运行,提供了丰富的特性和工具用于开发各种应用程序。面向对象编程(OOP)是C#的核心,它强调将数据和操作数据的方法封装在对象中,使得代码更加模块化和易于管理。面向对象包括面向对象的分析(OOA)、设计(OOD)和编程(OOP)。Java和C#是纯正的OO语言,而C++也支持面向对象特性。 在C#中,访问修饰符对于控制类成员的可见性至关重要。`private`成员只能在定义它的类内部访问,确保了数据的安全性。`protected`成员允许在类内部及其子类中访问,用于支持继承时的封装。`public`成员是公开的,没有访问限制,可以在任何地方调用。`internal`成员则限制在同一命名空间内的访问,这在库开发中特别有用,可以防止外部代码对内部实现的直接干涉。 ASP.NET页面间传递值有多种方法。使用`QueryString`可以将值附加到URL中,但安全性较低。`Session`变量可以在整个会话期间存储数据,适用于跨多个页面的持久数据。`Server.Transfer`可以在服务器端不生成新的HTTP响应就转移页面,保持当前上下文。此外,还可以使用`ViewState`、`HiddenField`以及`Application`(全局存储)等。 C#中的委托是一种类型安全的回调机制,它可以将方法作为参数传递给其他方法,或者存储在变量中。委托可以理解为指向特定方法的引用,类似于函数指针。事件实际上是一种特殊的委托,用于实现发布/订阅模式,允许对象之间相互通信,而无需直接耦合。 `override`和`overload`是两个不同的概念。`overload`(重载)是指在同一个类中创建多个同名但参数列表不同的方法,这是为了根据传入的不同参数执行不同的操作。而`override`(重写)则是子类对父类中虚方法的具体实现进行替换,目的是为了在派生类中改变或扩展基类的行为。 在B/S架构中,当不能使用Session、Cookie、Application时,可以通过其他方式传递变量值,例如使用`ViewState`、`QueryString`、`HiddenField`或`Server.Transfer`。此外,还可以通过将数据存储在数据库或自定义的服务器控件中来实现。 最后,遍历页面上的TextBox控件并赋值为`string.Empty`,可以使用以下代码实现: ```csharp foreach (System.Web.UI.WebControls.TextBox tb in this.Form.Controls.OfType<System.Web.UI.WebControls.TextBox>()) { tb.Text = string.Empty; } ``` 这段代码利用了LINQ的`OfType<T>`方法来筛选出页面上的TextBox控件,并将其文本属性清空。 以上内容涵盖了C#中的面向对象、访问修饰符、ASP.NET页面间通信、委托与事件、方法重载与重写,以及页面控件的操作等多个知识点,这些都是C#.NET开发者应掌握的基础。