将变量设置为数组中的第一个值 -

时间:2015-11-03 22:14:18

标签: c# arrays

我正在做一些初学者在c#上工作,与visual studio合作。我必须计算用户输入数组的最小数字。我需要手动编写代码。这就是我所拥有的相关内容。

public partial class Form1 : Form
{
                                                                                //Declare and initialise variables to be used in app.
    int[]   markArray = new int[10];                                            //Declare an array of integers to hold entered user values
    int     arrayPointer            = 0;                                        //Declare array pointer - This will be incremented after each function is carried out, so that the next user entered number will be placed in the next index position in the array.                                            
    int     lowestMark              = 0;                                        //Declare lowest mark

private void buttonAdd_Click(object sender, EventArgs e)                        //on a button click within the app
    {
        try                                                                     //Test value enter is number
        {
            markArray[arrayPointer] = Convert.ToInt32(textEntry.Text);          //Take value from text box and place in array cell if it is a int
        }
        catch                                                                   //Catch non ints
        {
            MessageBox.Show("You must enter a number ");                        //if not int display error messsage  
        }

        int lowestMark = markArray[0];                                          // Set variable "lowestMark" to the value in the first position of the array.
        for (int i = 0; i < 10; i++)
        {
            if (markArray[i] < lowestMark)                                      //  if there is an index with a value lower than the value assigned to "lowestMark"
            {
                lowestMark = markArray[i];                                      //Set this new lower value as the "lowestMark"
            }
        }
        arrayPointer++;                                                         //Increment array pointer
    }

所以无论我摆弄它的哪种方式,lowestMark的值总是与我声明它时给出的值相同。如果我在宣布它时set it to 100,那么在运行时会显示为最低标记。所以看起来将它设置为数组中索引0中的值的行什么都不做。即使通过输入10个数字来填充数组中的每个索引,它仍然会读为0.我不知道为什么,这很奇怪,因为我想要做的事情似乎非常简单。

Enter a value into markArrayindexarrayPointer决定,starts at 0. Set lowestMark在相同位置的相同值。增加arrayPointer,以便将下一个值输入索引1。

该程序还有一些其他小功能,它在按钮点击时执行,但我删除它们只保留不起作用的东西

1 个答案:

答案 0 :(得分:3)

您正在将LowestMark重新声明为方法的局部变量。

int lowestMark = markArray[0]; 

如果要使用实例变量,请不要重新声明它。

lowestMark = markArray[0];

您的实例变量(也称为lowestMark)正被局部变量屏蔽,因此其值永远不会改变。