.NET文档中'this'关键字的定义 - c#

我目前正在尝试学习.NET文档中的'this'关键字:

this关键字引用该类的当前实例,并且是
也用作扩展方法的第一个参数的修饰符。

当类数据字段具有与构造函数中的参数相同的名称时,我通过'this'关键字了解到的第一件事是如何解决范围模糊性。像这样:

class Person
{
    public string name;

    public Person(string name)
    {
        this.name = name;
    }
}

这里使用'this'关键字来通知C#编译器我要使用名为'name'的变量,它应该来自当前类实例范围,而不是来自方法范围。例如,如果我在托管堆上创建Person类的对象,并引用我分配给名为'p1'的变量的对象,则语句'this.name'实际上为'p1.X'(我知道我无法将其编写为代码这样,只是为了更好的想象力)。如果是这样,那么对于这个示例,.NET文档中的定义对我来说很有意义。

但是如果我使用'this'关键字来链接构造函数怎么办?

我再次知道它的作用,但是我真的不知道当前类实例在使用什么“ this”关键字?在范围模糊的第一个示例中,这是有道理的,但是在链接构造函数时,我真的不知道它与任何类实例有什么关系,因为它不使用实例中的任何内容,它只是将传入的参数传递给主节点。构造函数。

链接构造函数示例:

class Person
{
    public string name;
    public int? age;

    public Person(string name): this(name, null) { }

    public Person(string initName, int? initAge)
    {
        name = initName;
        age = initAge;
    }
}

所以我的问题是,因为在编写文档时,此关键字引用了该类的当前实例:
当您将其与链接构造函数一起使用时,从该类的当前实例引用什么“ this”关键字?

谢谢你的回答

参考方案

当您将其与链接构造函数一起使用时,从该类的当前实例引用什么“ this”关键字?

它指的是此类的构造函数调用(与基类的构造函数相比)。

错误CS0027:关键字'this'在当前上下文中不可用 - c#

我有以下构造函数的初始化:public partial class WizardPage1 : WizardPage { public WizardPage1() : base(0, getLocalizedString(this.GetType(), "PageTitle")) { } } 哪里public static string …

如何检查从数组$ this-> data ['tips']中的数据库是否成功检索到数据? - php

如何检查是否从codeigniter框架中的$ this-> data ['tips']数组中的数据库中成功检索到数据。我想检查一下这是控制器。 参考方案 $result = $this->db->get('table')->result_array(); 在$result变量结果数组中将被保存。您可以检查$res…

将字符串分配给numpy.zeros数组[重复] - python

This question already has answers here: Weird behaviour initializing a numpy array of string data                                                                    (4个答案)         …

'ConfigurationBuilder'不包含'AddJsonFile'的定义 - c#

我有以下错误:Program.cs(15,72):错误CS1061:“ ConfigurationBuilder”不包含“ AddJsonFile”的定义,并且找不到包含“ ConfigurationBuilder”类型的第一个参数的可访问扩展方法“ AddJsonFile”(您是否缺少使用指令或汇编该项目是一个使用Azure Search SDK的dotn…

为什么使用'=='或'is'比较字符串有时会产生不同的结果? - python

我有一个Python程序,其中将两个变量设置为'public'值。在条件表达式中,我有比较var1 is var2失败,但如果将其更改为var1 == var2,它将返回True。现在,如果我打开Python解释器并进行相同的“是”比较,则此操作成功。>>> s1 = 'public' >>…