我有一个名为的非静态类ImplementHeaderButtons
其中包含一个名为的非静态公共方法Implement
。类和方法的名称并不重要,重要的是它们不是静态的,因此需要实例化才能使用,对吧?
所以我曾经这样做过:
var implementHeaderButtons = new ImplementHeaderButtons();
implementHeaderButtons.Implement(this, headerButtons);
但后来我决定尝试一下它(实际上我正在寻找一种使其成为单行代码的方法),我得出的结论是以下代码也同样有效:
new ImplementHeaderButtons().Implement(this, headerButtons);
现在,我不需要变量来保存实例,但我的问题是:为什么我可以动态创建类的新实例并调用它的方法,而无需使用变量来存储该实例?
如果它没有按预期工作我不会感到惊讶,但它确实如此。
它们不是静态的,因此需要实例化才能使用,对吧?
是的,但您仍在实例化该类new ImplementHeaderButtons()
,您只是没有在任何地方存储对新创建的实例的引用。
您仍然可以像在示例中所做的那样在此实例上调用方法,但是如果没有引用,您将无法在之后使用它执行任何其他操作。最终该实例将被垃圾收集器清理(前提是您调用的方法没有在某处存储对该对象的引用)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)