-6
public partial class Form1 : Form
{
    Course[] csharp = new Course[5];     

    public Form1()
    {
        InitializeComponent();
    }        

    private void Form1_Load(object sender, EventArgs e)
    {
        Test c1 = new Test("Quiz",
            new DateTime(2012, 6, 6), 86);
        Test c2 = new Test("Mid-Term",
           new DateTime(2012, 5, 6), 90);
        Test c3 = new Test("Final",
           new DateTime(2012, 4, 6), 87);
        Test c4 = new Test("Quiz",
           new DateTime(2012, 3, 6), 100);
        Test c5 = new Test("Quiz",
           new DateTime(2012, 2, 6), 66);
    }
}

如何将我的测试 c5 添加到我的对象数组 csharp?我想向三个对象添加五种测试类型。请帮助我处于初学者水平。

4

3 回答 3

3

您可以使用数组初始值设定项语法声明一个数组并为其赋值,如下所示:

Test[] tests = {
    new Test("Quiz", new DateTime(2012, 6, 6), 86),
    new Test("Mid-Term", new DateTime(2012, 5, 6), 90),
    new Test("Final", new DateTime(2012, 4, 6), 87),
    new Test("Quiz", new DateTime(2012, 3, 6), 100),
    new Test("Quiz", new DateTime(2012, 2, 6), 66)
};
于 2012-06-08T18:01:22.280 回答
1

我知道我是一个初学者并且有这样的问题!您不能将测试对象添加到课程对象,它们是两个不同的东西!

你需要类似的东西

  Test[] courseTests = new Test[5];

并通过做添加

   courseTests[1] = new Test("Quiz", new DateTime(2012, 6, 6), 86);

或者您可以使用列表List<Test> courseTests = new List<Test>();并使用 courseTests.Add


编辑:

我明白你的意思,你需要这样的东西:

public Class course
{
    public List<Test> tests = new List<Test>();
     //Place other course code here
}
public Class Test
{
   public string Name;
   public Datetime Time;
   public int Number;
    Test(string name, Datetime time, int number)
    {
Name = name;
Time = time;
Number = number;
    }
}

然后在您的 Main 方法或其他方法中,执行Course.tests.Add(new Test(Blah blah blah));

于 2012-06-08T18:03:28.513 回答
0

在您的 Course 类中创建一个 Test[] 并设置为您想要的大小。然后像这样创建一个 void 方法。在下面的代码中 myTests 是您的测试数组。希望这可以帮助!

    public void addTest(Test a)
    {
       for (int i = 0; i < myTests.Length; i++)
       {
           if (myTests[i] == null)
           {
               //Adds test and leaves loop.
               myTests[i] = a;
               break;
           }
           //Handler for if all tests are already populated.
           if (i == myTests.Length)
           {
               MessageBox.Show("All tests full.");
           }
        }
    }

此外,如果您想使测试数组的大小动态化,您可以使用 ArrayList。希望这可以帮助!

于 2012-06-08T18:24:01.103 回答