C#编程:属性访问与域操作详解

需积分: 10 4 下载量 161 浏览量 更新于2024-07-13 收藏 211KB PPT 举报
"本资源主要介绍了C#编程中的属性(属性的访问-域、属性与事件)相关的知识,包括域的定义与使用、属性的概念、委托的概念与使用以及事件的基本概念。通过示例代码展示了如何定义和使用属性,强调了属性在封装数据方面的优势,并提供了属性访问器(get和set)的使用方法。" 知识点详细说明: 1. **域(Field)**: - 域是类中用于存储数据的成员变量,它代表类的内部状态。 - 声明格式:`[域修饰符] 域类型 域名`,常见的修饰符有`public`、`private`、`protected`、`internal`、`new`、`static`和`readonly`。 - 缺省情况下,每个域都会被初始化为其类型的默认值,例如数值型为0或0.0,布尔型为false,引用类型为null。 - 静态域在类加载时初始化,非静态域在类实例创建时初始化。 - 可以在类声明中定义域时初始化,或者在构造函数中初始化。 2. **只读域(readonly)**: - 只读域只能在声明时或所属类的构造函数中初始化,之后不能改变其值。 - 可以是静态或非静态的。 - 区别于`const`常量,`const`必须在编译时确定其值,而`readonly`可以在运行时初始化。 3. **属性(Property)**: - 属性提供了一种安全访问和修改类中私有域的方法,遵循封装原则。 - C#中属性的声明形式:`[修饰符] 类型 属性名称 { get; set; }`,get用于读取,set用于写入。 - 可以根据get和set访问器的存在与否,将属性分为读写、只读和只写属性。 - 示例代码展示了如何定义一个包含验证逻辑的属性,当尝试设置负年龄时,会提示“输入值非法”。 4. **事件(Event)**: - 事件是一种特殊的委托类型,用于在对象之间传播通知。 - 当一个对象的状态发生改变时,可以触发事件,其他订阅了该事件的对象会收到通知并执行相应的处理。 - 在C#中,通常使用`event`关键字来声明事件,结合委托实现事件处理。 5. **委托(Delegate)**: - 委托是一种类型,用于引用方法,允许将方法作为参数传递,也可以用作事件处理的机制。 - 常见的委托类型如`EventHandler`和`Action<T>`,它们定义了方法签名,确保传递的方法具有正确的参数和返回类型。 总结:本资源深入讲解了C#中关于域、属性和事件的基本概念和用法,特别是属性的访问控制,强调了属性在封装数据和提供安全访问方面的优势。通过示例代码,读者可以更好地理解和应用这些概念到实际的C#编程中。