所以我给了一个小程序来写,我做得很好,但后来我被问到以下内容,我有点困惑。
以下是什么价值?
//我告诉他们他们会因为没有初始化而得到错误,所以他们指向内存中的某个地址......
int a;
Object b;
int d = a;
bool c;
如果是在Java中,用
替换最后一行boolean c;
请让我知道正确答案,因为我相信它会再次提起。谢谢:))
答案 0 :(得分:6)
.Net CLR将所有字段和本地值初始化为默认值
在您的情况下,这是0
,null
和false
。
但是,此代码在任何情况下都不会编译。
在方法中,C#不允许您使用未初始化的本地人,因此d = b
将无法编译。
作为实例字段,在您进入构造函数之前,C#不允许您使用this
,因此d = a
将无法在字段初始值设定项中进行编译。
作为静态字段,这将编译,但缺少static
关键字。
在Java中,除了Java允许您在字段初始值设定项中使用this
之外,所有这些都是正确的。
因此,此代码在Java中作为实例字段有效。
答案 1 :(得分:1)
在C#中,int
的默认值为0. Object
为空。 bool
是假的。
一个简单的谷歌找到了asnwer。
http://msdn.microsoft.com/en-us/library/83fhsxwc(v=vs.80).aspx
答案 2 :(得分:1)
a == 0, b == null, d == 0, c == false