关于索引器 请问,索引器类的定义中, List<string> _strList = new List<string>();怎么在定义的时候就要分配内存? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是设置 容量大小?_strList.Capacity = 10内存空间大小 是 看你 添加的元素了。 class MyIndexer { private List<string> _strList = new List<string>(); public void AddString(string str) { this._strList.Add(str); } public string this[int index] { get { return this._strList[index]; } set { this._strList[index] = value; } } }这是自己定义的一个索引器,但是在类的定义里,用到了new ,在定义里也能分配内存吗,即使类还没有对象化? _strList 作为MyIndexer类的字段,只有在MyIndexer类实例化时才会实例化,才会分配内存而不是你说的“在定义里分配内存” 那如果不设置我定义的字符串数组_strList的容量,可以无限制的增加元素吗? 那个new是什么意思,好像必须加上,但是普通字段定义就不能有 new就是调用类的构造函数进行实例化,字段可以在声明的时候不进行实例化的,可以把实例化放到需要的时候进行,在声明的时候就实例化的好处就是不用担心使用字段的时候会抛出“未将对象引用设置到对象实例”的错误。拿你这个例子说明,实例化不一定要在声明的时候进行:class MyIndexer { private List<string> _strList; public MyIndexer() { _strList = new List<string>(); } public void AddString(string str) { this._strList.Add(str); } public string this[int index] { get { return this._strList[index]; } set { this._strList[index] = value; } } } list不是数组,理论上本来就可以无限制增加元素,new因为这是个类咯,实例化了才能用 未能加载类型“ZSF.Web.Global”。是怎么回事呀? webBrowser多线程获取webBrowser.Document.Links问题。 用wpf 做的飞镖游戏 我想用从GridView的DataNavigateUrlFormatString中打开新窗口 有关WCF的疑问 如何实现在多选项卡间搜索 简单的疑问? 在sharpZipLib里怎么用MemoryStream 求winform 下,可编辑的DataGrid的分页解决方案 DataGrid中DropList列的字段绑定,选择,修改问题? 发送邮件问题! 这段代码在XP下没有错误,在W7下为什么报错???
_strList.Capacity = 10
内存空间大小 是 看你 添加的元素了。
class MyIndexer
{
private List<string> _strList = new List<string>(); public void AddString(string str)
{
this._strList.Add(str);
}
public string this[int index]
{
get
{
return this._strList[index];
}
set
{
this._strList[index] = value;
}
} }这是自己定义的一个索引器,但是在类的定义里,用到了new ,在定义里也能分配内存吗,即使类还没有对象化?
而不是你说的“在定义里分配内存”
class MyIndexer
{
private List<string> _strList;
public MyIndexer()
{
_strList = new List<string>();
}
public void AddString(string str)
{
this._strList.Add(str);
}
public string this[int index]
{
get
{
return this._strList[index];
}
set
{
this._strList[index] = value;
}
} }