C#构造函数中的"this"是什么?

3

当在构造函数中引用时,关键字“this”是否指代被创建的类的实例?

例如,我有一个特定类的所有实例列表。如果我在构造函数末尾加上“ MyList.Add(this);”,那么是否会添加新创建的类?


3
如果你对此有疑问,那么你认为它可能还意味着什么? - Ben Robinson
1
在构造函数中将自己添加到列表的类似乎有点奇怪。这意味着您拥有一个包含自身的列表的类。让我有点儿难以理解。 - Ben Robinson
@BenRobinson 列表本身不一定要在类中(静态、参数等),但是确实有点奇怪。 - Rob
@Rob,这些建议中的任何一个都似乎相当奇怪。 - Ben Robinson
6
@BenRobinson: 这不是它的实际含义。它的意思是类将一个引用添加到包含一个引用的列表中。想象一下你是实例。你在一张纸上写下自己的名字。你把那张纸放进一个名为“我的笔记”的三环文件夹里。你又在一张纸上写下“我的笔记”并把它放在口袋里。这没有什么奇怪的。在文件夹中的不是,只是你的名字。在你口袋里的也不是文件夹,只是一张上面写着文件夹名字的纸。以引用的方式思考。 - Eric Lippert
@EricLippert 是的,我已经理解了。并不是循环引用让我困扰,而是为什么你要这样做。 - Ben Robinson
4个回答

12

2
正如SLaks所说,重要的是注意以这种方式暴露“this”可能存在的安全问题。 - Alireza Noori

9

是的,this在构造函数中与其他实例方法一样,指当前实例。


1

是的,这指的是构造函数中的当前实例。


0

this总是指向当前实例, 你可以把this当作指向实例的指针。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接