构造函数来分配我自己的数组<;T>;班
本文关键字:lt gt 数组 分配 我自己 自己的 构造函数 | 更新日期: 2023-09-27 18:29:24
我有一个类似Quete(先进先出)的类
public class Tor<T>
{
private T[] elements;
private int next;
public event EventHandler<EventArgs> queueFull;
}
我需要构建一个构造函数来获取一个参数(队列大小(int))。它分配数组并初始化变量
怎么做?
简单的怎么样
public Tor(int size)
{
elements = new T[size];
}
public class Tor<T> where T : new()
{
public Tor(int size)
{
elements = new T[size];
for (int i = 0; i < size; i++)
{
elements[i] = new T();
}
}
private T[] elements;
private int next;
public event EventHandler<EventArgs> queueFull;
}
或
public class Tor<T> where T : new()
{
public Tor(int size)
{
elements = Enumerable.Range(1,size).Select (e => new T()).ToArray();
}
...
}
public class Tor<T>
{
private T[] elements;
private int next;
public event EventHandler<EventArgs> queueFull;
public Tor(int capacity)
{
elements = new T[capacity];
}
}
应该这样做。
public class Tor<T>
{
private T[] elements;
private int next;
public event EventHandler<EventArgs> queueFull;
public Tor(int size)
{
if (size < 0)
throw new ArgumentOutOfRangeException("Size cannot be less then zero");
elements = new T[size];
next = 0;
}
}
考虑使用现有类
- 如果需要,从队列派生事件,如C#中建议的:当对象添加到队列时触发事件
- 或者,如果您想构建自己的使用列表,该列表将允许根据需要增长阵列/如果您愿意,则进行预分配