【发布时间】:2012-05-02 16:49:58
【问题描述】:
不,这不是我的作业。
(因为我旁边有一叠答题卡,等着批改。)
问:如果方法中的局部变量与主程序中的变量同名,会发生什么?
a) 产生错误
b) 主程序中的变量是“隐藏”的,直到方法执行完毕
c) 主程序中的变量将覆盖方法中的变量
d) 以上都不是。
教科书的答案是b,很简单。
但仔细想想,它真的“隐藏”了吗?
据我所知,在 C# 和 Java 等纯面向对象语言中,
我们总是可以使用
this.x
或
MainProgram.x
用于静态变量。
所以我的问题是:
对于 C#,选项 b 可以被认为是正确的吗?为什么?
请分享你的想法。
【问题讨论】:
-
您似乎只是在指出口语程序员在这里对“隐藏”的使用与字典定义不太匹配?很多事情都是如此。
-
看看this
-
谢谢,这很有帮助。我从来没有听说过阴影。我不是母语人士。
-
查看Eric Lippert's blog,特别是:简单的名字没那么简单Part 1Part 2