0

我正在编写一个程序,它创建一个随机数并移动到一个数组。这是我的类,称为随机化:

class Randomize
{
        public int[] _array;
        public int[] Array{ get { return _array; } set { _array= value; } }
        public Randomize(int[] array)
        {
            Array= array;
        }

        public int _min;
        public int Min
        {
            get { return _min; }
            set { _min = value; }
        }
        public int _max;
        public int Max { get { return _max; } set { _max = value; } }

        public Randomize(int min, int max)
        {
            Min = min;
            Max = max;
        }
        public override string ToString()
        {
            return string.Format(Max.ToString(), Min.ToString());
        }
        public override string ToString()
        {
            return string.Format(Array.ToString());
        }

最小值和最大值是 MinValue 和 MaxValue。

现在我的表格:

 private void button1_Click(object sender, EventArgs e)
        {
            Randomize min = new Randomize(0, 100);
            Random rand= new Random(); // randomize
            Randomize[] array= new Randomize[10]; 
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rand.Next(0,100); //draw in loop
            }
            textBox1.Clear(); 
            for (int i = 0; i < array.Length; i++)
            {


            textBox1.Text = textBox1.Text + " " + array[i].ToString(); //show in textbox              
        }    
    }

我的问题是如何向 button1 请求我的数组和随机数。

现在我在第一个 FOR 循环中出现错误“无法将类型隐式转换为 int”。

谢谢并恭祝安康 :)

4

3 回答 3

1
 Randomize[] array= new Randomize[10]; 

本来应该

 int[] array = new int[10];
于 2013-11-09T13:31:01.717 回答
1

问题

错误在行

array[i] = rand.Next(0,100);

rand.Next(0,100);给出一个整数,您不能从 int 转换为 Randomize. 这就是错误的说明。

'cannot implicitly convert type to int'

解决方案

你应该使用这样的整数数组

int[] array= new int[10];
于 2013-11-09T13:29:43.337 回答
0

哇,这里有些事情是有问题的。你的类应该拥有数据,并处理它的生成和显示。除了指示您的类显示数据外,不应在按钮事件中进行任何操作。此外,除非它们被声明和描述为成员,否则您不应该在类中使用类似10or的幻数。100const

作为一个例子,看看下面的代码,看看你是否已经弄清楚它与你的代码有什么不同(就在哪里和做了什么而言)。

public class RandomArray 
{
    /// <summary>
    /// create a single random number generator
    /// </summary>
    static readonly Random generator = new Random();
    /// <summary>
    /// here are the random numbers stored
    /// </summary>
    int[] array;
    /// <summary>
    /// store the min, max used to generate the data
    /// </summary>
    readonly int min, max;
    /// <summary>
    /// Constructor only needs how the value limits
    /// </summary>
    /// <param name="min">The minimum value (typical 0)</param>
    /// <param name="max">The maximum value (example 100)</param>
    public RandomArray(int min, int max)
    {
        this.min=min;
        this.max=max;
        this.array=new int[0];
    }
    /// <summary>
    /// Fills the array with random numbers
    /// </summary>
    /// <param name="count">The number of data to generate</param>
    public void Fill(int count)
    {
        this.array=new int[count];
        // fill array with random integers
        for (int i=0; i<array.Length; i++)
        {
            array[i]=generator.Next(min, max);
        }
    }        
    /// <summary>
    /// Copy constructor if needed (optional)
    /// </summary>
    /// <param name="other">A RandomArray to copy the data from</param> 
    public RandomArray(RandomArray other)
    {
        this.min=other.min;
        this.max=other.max;
        this.array=(int[])other.array.Clone();
    }
    /// <summary>
    /// Provide the data
    /// </summary>

    public int[] Array { get { return array; } }
    /// <summary>
    /// Provide the limits used
    /// </summary>

    public int Min { get { return min; } }
    public int Max { get { return max; } }
    /// <summary>
    /// Creates a comma separated list of numbers like <c>[45,32,64,..]</c>
    /// </summary>
    public string ToStringList()
    {
        string[] parts=new string[array.Length];
        for (int i=0; i<parts.Length; i++)
        {
            parts[i]=array[i].ToString();
        }
        return "["+string.Join(",", parts)+"]";
    }
    /// <summary>
    /// Shows only the limits used
    /// </summary>
    public override string ToString()
    {
        return string.Format("RandomArray({0},{1})", min, max);
    }
}

    // Click Event
    private void button1_Click(object sender, EventArgs e)
    {
        RandomArray random_array=new RandomArray(0, 100);
        random_array.Fill(10);
        textBox1.Text=random_array.ToStringList();
    }
于 2013-11-09T14:18:46.727 回答