构造函数来分配我自己的数组<;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))。它分配数组并初始化变量

怎么做?

构造函数来分配我自己的数组<;T>;班

简单的怎么样

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#中建议的:当对象添加到队列时触发事件
  • 或者,如果您想构建自己的使用列表,该列表将允许根据需要增长阵列/如果您愿意,则进行预分配