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]);

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

(0)

相关推荐

  • C#中this的用法集锦

    this 关键字引用类的当前实例,还可用作扩展方法的第一个参数的修饰符.下面就针对this的四种用法,做简单的总结. 首先,我们分别创建User和VIP两个C#类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AppConsole { /// <summary> /// 普通用户 /// &

  • C#中this的使用实例分析

    this关键字在C#程序设计中的应用非常频繁,今天本文就this关键字的用法做一番分析,希望能提对大家的C#程序设计有一定的帮助作用.具体分析如下: 1.代表当前类,在当前类中可使用this访问当前类成员变量和方法(需要注意的是 静态方法中不能使用this),也可用于参数传递,传递当前对象的引用. 示例代码如下: class Program { static void Main(string[] args) { thisClass testObj = new thisClass(); Conso

  • C# dynamic关键字的使用方法

    C#是一种类型安全的编程语言(所有表达式都能解析成某个类型的实例,在编译器生成的代码中,只会执行对这个类型有效的操作),和非类型安全的语言相比,类型安全的优势就体现出来了:1.许多错误能在编译时检测到,取保代码在执行它之前是正确的.2.编译时语言通常能生成更小,更快的代码.(在编译时进行更多的假设,并在IL和元数据中落实那些假设) 为了方便开发人员使用反射或者与基本组件通信,dynamic诞生了!一下代码展示了如何利用反射在一个String目标("根据我找类型")上调用一个方法(&qu

  • C#使用this关键字实现串联构造函数调用方法

    本文实例讲述了C#使用this关键字实现串联构造函数调用方法.分享给大家供大家参考.具体分析如下: 在一个类中如果需要实现多个自定义构造函数,通常做法是在构造函数中实现各自的业务逻辑,如果这些业务逻辑的实现并非截然不同的话,显然不符合oop编程思想,极不利于维护,当然,我们也可以通过将相同的逻辑部分封装成一个方法,但还有一种更为合理简单的方法,下面就通过this关键字来实现串联构造函数做一简单示例. 示例代码如下: 复制代码 代码如下: public class Person {       

  • C# 参考之访问关键字:base、this

    base base 关键字用于从派生类中访问基类的成员: 调用基类上已被其他方法重写的方法.  指定创建派生类实例时应调用的基类构造函数.  基类访问只能在构造函数.实例方法或实例属性访问器中进行. 示例: 在派生类中调用基类方法.  // base 关键字 // 访问基类成员 using System; public class BaseClass {     protected string _className = "BaseClass"; public virtual void

  • c#多线程中Lock()关键字的用法小结

    本文介绍C# lock关键字,C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待. 每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数.这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生. 其中,lock是一种比较好用的简单的线程同步方式,它是通过为给定对象获取互斥锁来实现同步的.它可以保证当一个线程在关键

  • C#中this指针的用法示例

    本文实例展示了C#中this指针的用法,对于初学者进一步牢固掌握C#有很大帮助,具体内容如下: 一.this指针是什么: 这里有一些面向对象编程的概念需要说明:类(Class)的概念和对象(Object)的概念 类是对事物概括,也是C#编码时所有代码归属的基本单位:而对象是对类的实例化,也就是C#里new方法的返回值.写代码是不能直接用操作类,而只能先实例化类,然后我们用这个类被实例化后的对象. 通俗一些的说明是,"类"好比是"人"的概念,而我们把类实例化后,就成为

  • C# this关键字的四种用法

    本文实例为大家分享了C# this关键字的四种用法,供大家参考,具体内容如下 用法一  this代表当前实例,用this.显式调用一个类的方法和成员 namespace Demo { public class Test { private string scope = "全局变量"; public string getResult() { string scope = "局部变量"; // 在这里,this代表Test的实例,所以this.scope指向的是全局变量

  • C#中this用法系列(二) 通过this修饰符为原始类型扩展方法

    定义一个静态类,类中定义静态方法,方法中参数类型前边加上this修饰符,即可实现对参数类型的方法扩展 示例如 namespace Demo{ // 这里的类必须为静态类 public static class Json { // 方法为静态方法 // this修饰符后边是string类型,即为string类型扩展出了ToJson方法 public static object ToJson(this string Json) { return Json == null ? null : JsonC

  • c#访问this关键字和base关键字示例

    指定创建派生类实例时应调用的基类构造函数: 调用基类上已被其他方法重写的方法. 注意:不能从静态方法中使用base关键字,base关键字只能在实例构造函数.实例方法或实例访问器中使用. 例:访问关键字this和base关键字示例:创建基类Person,包含两个数组成员name和age.一个具有两个参数的构造函数.一个虚函数GetInfo()以显示数据成员name和age的内容:创建派生类Student,包含一个数据成员studentId,一个具有三个参数的派生类构造函数,并用:base调用基类构

随机推荐