我目前正在尝试学习.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数组[重复] - pythonThis 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' >>…