在学习NameValueCollection集合(NameValueCollection学习随笔)时,有个疑问未确定,即NameValueCollection实例化时的默认容量(Capacity)究竟是多少。本着打破砂锅问到底的精神,找到了NameValueCollection的源码一探究竟。
类NameValueCollection的无参构造函数NameValueCollection()中没有初始化Capacity的代码,看来需要到基类NameObjectCollection中去看。
类NameObjectCollection的无参构造函数NameObjectCollection()中有初始化的迹象,继续跟踪。
在Reset()中可以看到,创建了容量为0的ArrayList对象。有参Reset(int capacity)有力证明了这一点,在实例化NameValueCollection对象时,根据构造函数的参数分别调用Reset()和Reset(int capacity)。
结论:实例化NameValueCollection对象时,如果未指定capacity参数值,NameValueCollection对象默认容量为0。