我对c#中的默认值有一个简单的问题。
未实例化时对象的默认值是什么?
以下是一个例子:
public class Example
{
public Example() { Console.WriteLine("Content!"); }
}
public class MainClass
{
// obj = ???
Example obj;
}
答案 0 :(得分:1)
规则很简单
局部变量不会自动初始化,因此没有 默认值。
https://msdn.microsoft.com/en-us/library/aa691170(v=vs.71).aspx
字段的初始值,无论是静态字段还是静态字段 实例字段,是默认值
https://msdn.microsoft.com/en-us/library/aa645756(v=vs.71).aspx
例如
public class Example {
bool m_Bool; // default value == false
int m_Int; // default value == 0
double m_Double; // default value == 0.0
string m_Text // default value == null;
Example m_Example; // default value == null;
public void Test() {
bool boolValue; // contains trash, must be initialized before using
int intValue; // contains trash, must be initialized before using
double doubleValue; // contains trash, must be initialized before using
string textValue; // reference to trash, must be initialized before using
Example example; // reference to trash, must be initialized before using
...
}
}