不仅仅是按原样调用参数?
Milana
问问题
479 次
4 回答
27
如果您的意思是字段,那么没有。无论您是显式(this.foo)还是隐式(foo) ,编译器都会注入“this”(ldarg.0)。
但是,它确实在您的源代码中多占用了 5 个字符……所以在您的开发硬盘上占用了少量字节。它将在编译的 IL 或运行时产生完全零差异。
有两种情况使用“this”会改变事情:
- 当存在同名的变量/参数时 (
this.foo = foo;
) - 解析扩展方法时 (
this.SomeMethod()
;)
于 2008-12-09T13:40:58.563 回答
1
你的问题太含糊了,无法明确回答,但我仍然会以响亮的“否”开始
那么我想知道你的参数到底是什么意思?我通常会将其解释为“方法的参数”,但它们与范围内的“this”无关,因此您可能指的是“成员”,例如字段、属性和/或方法。
如果我关于如何解释你的问题的所有假设都是正确的,我支持我以前的“不”。
但我想知道你从哪里得到这个想法。
于 2008-12-09T13:42:38.717 回答
0
我不知道,如果它使用更多内存,但我不这么认为,它只是一个明确的参考,编译器也会在后台完成。
于 2008-12-09T13:41:24.150 回答
0
我猜你的意思是在变量名之前?我不明白为什么它会使用更多内存。无论语法是什么,CLR 都必须优化,以不影响性能的方式引用变量(验证后,它将添加 this...)。所以不,它没有。
于 2008-12-09T13:42:01.167 回答