写点什么

C#入门系列 (十八) -- 类的属性、索引、事件和 this 关键字

作者:陈言必行
  • 2022 年 6 月 18 日
  • 本文字数:1286 字

    阅读完需:约 4 分钟

类的属性

类字段的访问权限一般定义为 private 或 protected,类外用户通过类的 public 方法来访问。


C#的属性把字段和访问它们的方法相结合。


属性为类用户提供了与字段读写相同的使用方法;


属性值的读写通过get访问器set访问器实现的,可以对非法的赋值进行检查过滤。


  • 属性的定义


定义格式:


[访问修饰符] 属性类型 属性名{  get{ return 表达式;}  set{ value关键字接收外面传值;}}
复制代码


代码:


// 简化写法public string Name {get; set;}
// 设置只读属性,只写同理public int Age { get; private set; }
// 性别示例int gender = 0;/// <summary>/// 0:女,1:男/// </summary>public int Gender{ get { return gender; } set { // 认为值1为男,其他值为女 if (value == 1) { gender = 1; } else { gender = 0; } }}
复制代码


  • 静态属性根据声明时是否使用 static 修饰符,可以将属性分为静态属性和实例属性。


静态属性不与特定实例相关联,引用语法为:


类名.属性名
复制代码



类的索引

索引是一组get和set访问器,支持按照引用数组元素的方法来索引对象。


索引通常表示多个数据成员,并且它总是以类的实例成员的方式存在。


一般语法形式:


返回类型 this[参数列表]{    get{……}    set{……}}
复制代码


代码示例:


class Program{    static void Main(string[] args)    {        Test t = new Test();                // 通过索引访问Test的私有变量x,y        Console.WriteLine(t[0] + "," + t[1]); // 输出:0,0                // 通过索引为x,y赋值        t[0] = 1;        t[1] = 2;                Console.WriteLine(t[0] + "," + t[1]); // 输出:1,2
Console.ReadLine(); }}
class Test{ int x = 0; int y = 0; public int this[int index] { get { if (index == 0) { return x; } else { return y; } } set { if (index == 0) { x = value; } else { y = value; } } }}
复制代码


  • 索引支持重载,只要索引的参数列表不同即可。



类的事件

事件是一种使对象或类能够提供通知的成员。客户端可以通过提供事件处理程序为相应的事件添加可执行代码。


事件机制是以消息为基础的,特定的操作会发生相应的消息,而关注该事件的对象收到这些消息时,即开始执行指定的处理过程。



this 关键字

**this **关键字是对当前对象的引用。


this 访问只能在实例构造函数、实例方法或属性和索引的实例访问器中使用,不能在任何静态函数成员的代码中使用。它通常用作以下两个目的:


  1. 用于区分类的成员和方法的本地变量或参数;

  2. 用作调用方法的实参。


常用方式代码示例:


int x = 0;int y = 0;public Test(int x, int y){    //类成员x    参数x    this.x   =  x;    this.y =  y;}
复制代码


发布于: 刚刚阅读数: 3
用户头像

陈言必行

关注

公号:开发同学留步 2019.03.12 加入

我是一个从事Unity游戏开发攻城狮,6年开发经验,助你日常不加班。

评论

发布
暂无评论
C#入门系列(十八) -- 类的属性、索引、事件和this关键字_C#_陈言必行_InfoQ写作社区