我开始了解对象的数组,并且遇到一些困难。 我发现类Person
的一个简单的代码和类PersonArray
和在PersonArray类的方法之一是这样的(m_Arr是一个Person阵列):对象的值是什么,什么时候可以为空?
public void Add(Person p)
{
if (p == null)
Console.WriteLine("Error, param can't be null");
if (m_Arr.Length <= m_Counter)
{
Array.Resize(ref m_Arr, m_Arr.Length + 10);
}
m_Arr[m_Counter++] = p;
}
我的问题为p时可以null
?我的意思是什么值可以反对,所以它不会是空的?另外,我还有一个问题 - m_Counter变量(这是一个计数器)没有初始化,但它没有任何问题。为什么它可以?
*“我的问题是什么时候可以为null?”* ...只要调用者代码是“Add(null);'。这与m_Counter是不一样的,它的类型为'int',它是一个**值类型**,与'Person'是相反的,它是一个**引用**类型 –
这是一个页面,讲述有关default变量的值。这有点令人困惑,因为他们声称你不能使用未初始化的变量,但我认为这意味着只有当他们没有默认的构造函数时... http://msdn.microsoft.com/en-us/library/83fhsxwc( v = vs80).aspx – RonaldBarzell