文档介绍:C# 基础知识( 4) 讲师:李智河南 863 软件公司 C# 基础知识培训河南 863 软件公司 C# 基础知识培训回顾?继承是获得现有类的功能的过程?创建新类所根据的基础类称为基类或父类,新建的类则称为派生类或子类? base 关键字用于从派生类中访问基类成员? override 关键字用于修改方法、属性或索引器。 new 访问修饰符用于显式隐藏继承自基类的成员?抽象类是指至少包含一个抽象成员(尚未实现的方法)的类。抽象类不能实例化?重写方法就是修改基类中方法的实现。 virtual 关键字用于修改方法的声明?显式接口实现是用于在名称不明确的情况下确定成员函数实现的是哪一个接口 2 河南 863 软件公司 C# 基础知识培训目标?理解属性及其不同的类型、实现?理解和使用索引器?实现委托?定义和触发事件 3 河南 863 软件公司 C# 基础知识培训属性简介 4 class Employee { private static string _name; private static string _id; static void Main(string [] args ){ _name = (); _id = (); }} ?直接访问字段?不经验证?直接访问字段?不经验证河南 863 软件公司 C# 基础知识培训属性简介 5 class Employee { private static string _name; private static string _id; public void SetId(value ) { // 验证输入长度小于 2 if (_ > 2) _id = value; } public string GetId () { return _id; } } 方法 SetId(Value ) 和 GetId () 分别读取和写入职员 ID 方法 SetId(Value ) 和 GetId () 分别读取和写入职员 ID …? Employee emp ;? ("A1"); ? string Department = () ……? Employee emp ;? ("A1"); ? string Department = () …每次都调用 GetId () 和 SetId () 方法会很繁琐每次都调用 GetId () 和 SetId () 方法会很繁琐属性属性河南 863 软件公司 C# 基础知识培训属性简介 6 class Employee { private static string _name; private static string _id; public string Id { get { return _id; } set { // 验证输入长度小于 2 if (_ > 2) _id = value; } }} 读取 ID 时调用将值赋给 ID 时调用河南 863 软件公司 C# 基础知识培训属性类型 7 [访问修饰符] 数据类型属性名{ get{ }; set{ }; } 读/写属性读/写属性可以赋值和检索值河南 863 软件公司 C# 基础知识培训属性类型 8 [访问修饰符] 数据类型属性名{ get{ }; } 只读属性只读属性只能检索值河南 863 软件公司 C# 基础知识培训属性类型 9 [访问修饰符] 数据类型属性名{ set{ }; } 只写属性只写属性只能赋值河南 863 软件公司 C# 基础知识培训属性类型 10 [访问修饰符]static 数据类型属性名{ get{}; set{}; } 静态属性静态属性应用于整个类而不是类的实例只能访问类的静态成员