保存值的对象.我需要向对象添加五个测试

本文关键字:对象 五个 添加 测试 保存 | 更新日期: 2023-09-27 18:36:40

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? 我想向三个对象添加五种测试类型。请帮助我处于初学者水平。

保存值的对象.我需要向对象添加五个测试

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

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)
};
我知道

我是初学者,有这样的问题!您不能将测试对象添加到课程对象,它们是两回事!

你需要类似的东西

  Test[] courseTests = new Test[5];

并按操作添加

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

或者,您可以使用列表List<Test> courseTests = new List<Test>();并使用课程测试.添加


编辑:

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

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

在课程类中创建设置为所需大小的 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。希望这有帮助!