C#基础知识之this关键字介绍

一、this可以代表引用类的当前实例,包括继承而来的方法,通常可以省略。


public class Person

{

    public string Name { get; set; }

    public int Age { get; set; }

    public Person(string Name, int Age)

    {

        this.Age = Age;

        this.Name = Name;

    }

}

这个不用多说,当对象调用自己内部函数的时候,用到对象使用this即可。

二、this关键字后面跟“:”符号,可以调用其它的构造函数


//声明有实现的构造函数

public Person()

{

    this.NAge = 100;

    Console.WriteLine("我是超人!");

}

public Person(int nAge)

{

    Console.WriteLine("超人的年龄{0}", nAge);

}

 //使用this关键字调用了第二个一个参数的构造函数

public Person(int nAge, string strName)

    : this(1)

{

    Console.WriteLine("我是叫{0}的超人,年龄{1}", strName, nAge);

}

我们创建该对象看看是否调用成功。在Main函数中添加如下代码:

Person p = new Person(10,"强子");

执行会输出:


超人的年龄1

我是叫强子的超人,年龄10

三、声明索引器

索引器类型表示该索引器使用哪一类型的索引来存取数组或集合元素,可以是整数,可以是字符串;this表示操作本对象的数组或集合成员,可以简单把它理解成索引器的名字,因此索引器不能具有用户定义的名称。例如:


public class Person

{

    string[] PersonList = new string[10];

    public string this[int param]

    {

        get { return PersonList[param]; }

        set { PersonList[param] = value; }

    }

}

其中索引的数据类型必须与索引器的索引类型相同。例如:


Person person = new Person();

person[0] = "hello";

person[1] = "world";

Console.WriteLine(person[0]); 

看起来对象像个数组一样,呵呵。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。