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

 更新时间:2016年04月23日 16:03:33   作者:Swich  
本文主要介绍this关键字的几种使用方法,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]);

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

相关文章

  • FileStream常用的属性与方法总结

    FileStream常用的属性与方法总结

    本篇文章主要是对FileStream常用的属性与方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • 如何利用C#通过sql语句操作Sqlserver数据库教程

    如何利用C#通过sql语句操作Sqlserver数据库教程

    ado.net提供了丰富的数据库操作,下面这篇文章主要给大家介绍了关于如何利用C#通过sql语句操作Sqlserver数据库教程的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • C#实现将32位MD5摘要串转换为128位二进制字符串的方法

    C#实现将32位MD5摘要串转换为128位二进制字符串的方法

    这篇文章主要介绍了C#实现将32位MD5摘要串转换为128位二进制字符串的方法,涉及C#字符串遍历、加密与转换相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • C#创建WCF服务控制台应用程序详解

    C#创建WCF服务控制台应用程序详解

    这篇文章主要为大家详细介绍了C#创建WCF服务控制台应用程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • C#爬取动态网页上信息得流程步骤

    C#爬取动态网页上信息得流程步骤

    动态内容网站使用 JavaScript 脚本动态检索和渲染数据,爬取信息时需要模拟浏览器行为,否则获取到的源码基本是空的,这篇文章主要给大家详细介绍了C#爬取动态网页上信息得流程步骤,需要的朋友可以参考下
    2024-10-10
  • Winform中Treeview实现按需加载的方法

    Winform中Treeview实现按需加载的方法

    这篇文章主要介绍了Winform中Treeview实现按需加载的方法,针对大数据量的情况下非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C#抓取网页数据 解析标题描述图片等信息 去除HTML标签

    C#抓取网页数据 解析标题描述图片等信息 去除HTML标签

    本文主要一步一步介绍利用C#抓取页面数据的过程,抓取HTML,获取标题、描述、图片等信息,并去除HTML,希望对大家有所帮助。
    2016-04-04
  • C#实现汉字转汉语拼音的示例代码

    C#实现汉字转汉语拼音的示例代码

    这篇文章主要介绍了如何利用C#实现汉字转汉语拼音,文中的示例代码讲解详细,对我们学习C#有一定帮助,感兴趣的小伙伴可以跟随小编一起动手试一试
    2022-03-03
  • C#加解密之AES算法的实现

    C#加解密之AES算法的实现

    一般我们来说呢,对于加密,我们分为可逆和不可逆。可逆加密又可分为对称加密(AES、DES等)和非对称加密(RSA),还有就是一些编码加密等(BASE64);不可逆的呢,大部分又都称为摘要算法(MD5、SHA)。本文将用C#实现AES算法,需要的可以参考一下
    2022-08-08
  • C#/.Net 中快速批量给SQLite数据库插入测试数据

    C#/.Net 中快速批量给SQLite数据库插入测试数据

    这篇文章主要介绍了C#/.Net 中快速批量给SQLite数据库插入测试数据,本文直接给出实例代码,需要的朋友可以参考下
    2015-06-06

最新评论