use*_*502 0 java c#-3.0 c#-4.0
所以我给了一个小程序写,我做得很好,但后来我被问到以下,我有点困惑.
以下是什么价值?
//我告诉他们他们会因为没有初始化而得到错误,所以他们指向内存中的某个地址......
int a;
Object b;
int d = a;
bool c;
Run Code Online (Sandbox Code Playgroud)
如果在Java中,用最后一行替换
boolean c;
Run Code Online (Sandbox Code Playgroud)
请让我知道正确答案,因为我相信它会再次提起.谢谢 :)
.Net CLR将所有字段和本地值初始化为其默认值.
在你的情况,那是0,null和false.
但是,此代码在任何情况下都不会编译.
在方法内部,C#将不允许您使用未初始化的本地,因此d = b不会编译.
作为实例字段,C#不允许您this在构造函数内部使用,因此d = a不会在字段初始值设定项中进行编译.
作为静态字段,这将编译,但static缺少关键字.
在Java中,所有这些都是正确的,除了Java允许您this在字段初始化器中使用.
因此,此代码在Java中作为实例字段有效.
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |