【发布时间】:2012-12-14 13:58:57
【问题描述】:
我开始了解对象的数组,但遇到了一些困难。
我找到了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 变量(它是一个计数器)未初始化,但它的工作没有任何问题。为什么没问题?
【问题讨论】:
-
“我的问题是 p 什么时候可以为空?” ...只要调用方代码是
Add(null);。这与 m_Counter 不同,它是int类型,它是一个 值类型,而Person是一个 reference 类型跨度> -
这是一个讨论变量默认值的页面。这有点令人困惑,因为他们声称您不能使用未初始化的变量,但我认为这意味着只有当他们没有默认构造函数时...msdn.microsoft.com/en-us/library/83fhsxwc(v=vs.80).aspx