用于分配我自己的数组<t>类</t>的构造函数

时间:2012-03-30 06:41:17

标签: c# asp.net visual-studio-2010

我有一个像Quete(先进先出)的课程

public class Tor<T>
{
    private T[] elements;

    private int next;

    public event EventHandler<EventArgs> queueFull;   
}

我需要构建一个构造函数来获取一个参数(队列大小(int)。并且它分配arrary并初始化变量,

怎么做?

5 个答案:

答案 0 :(得分:2)

简单的

public Tor(int size)
{
  elements = new T[size];
}

答案 1 :(得分:1)

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(); 
    }
    ...
}

答案 2 :(得分:0)

public class Tor<T>
{
    private T[] elements;

    private int next;

    public event EventHandler<EventArgs> queueFull;

    public Tor(int capacity)
    {
        elements = new T[capacity];
    }
}

应该这样做。

答案 3 :(得分:0)

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;
    }
}

答案 4 :(得分:0)

考虑使用现有的课程

  • 如果需要在[{3}}
  • 中建议的事件,则从队列派生
  • 或者如果您想构建自己的使用List,那么可以根据需要增加数组/预分配(如果您愿意)。