我在使用此作业中的方法时遇到问题。我的指示是
使用包含ScheduleStudentPresentationController实例(控制器)的变量来获取该部分。您需要将该方法传递给studentId。使用上面定义的studentId变量作为参数。
底线是我以为我会用studentId作为参数调用方法并将其分配给section,但它显然不正确。
这是我第一次用c#编程,所以任何方向,无论多么简单,看起来都很棒。
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace A4_Skeleton
{
public partial class FormStudentSignUpForPresentationSlot : Form
{
private ScheduleStudentPresentationController controller;
private Section selectedSection;
public FormStudentSignUpForPresentationSlot()
{
InitializeComponent();
//***********************************************************************
// 1.
//Instantiate an instance of the ScheduleStudentPresentationController
// and assign it to the class variable named "controller"
//***********************************************************************
controller = new ScheduleStudentPresentationController();
}
private void buttonGetSection_Click(object sender, EventArgs e)
{
// Clear out any residual info
labelSectionInfo.Text = "";
int studentId = 1;
//***********************************************************************
// 2.
// Use the variable that contains an instance of
//ScheduleStudentPresentationController
// to get the section. You will need to pass that method a
//studentId.
// Use the studentId variable defined above as the parameter
//***********************************************************************
Section section = controller(studentId);
这是ScheduleStudentPresentationController
的定义using System;
using System.Collections.Generic;
namespace A4_Skeleton
{
public class ScheduleStudentPresentationController
{
private PresentationSchedule presentationSchedule;
public ScheduleStudentPresentationController()
{
presentationSchedule = new PresentationSchedule();
}
public Section getSection(int studentId)
{
SectionEnrolledStudent sectionEnrolledStudent = new
SectionEnrolledStudent();
return sectionEnrolledStudent.getSection(studentId);
}
public Dictionary<DateTime, List<Slot>> getAvailableSlots(int
sectionId)
{
return presentationSchedule.getAvailableSlots(sectionId);
}
public bool selectSlot(int sectionId, int studentId, DateTime
slotDate, int slotNum)
{
return presentationSchedule.selectSlot(sectionId, studentId,
slotDate, slotNum);
}
}
}
答案 0 :(得分:1)
首先,您的作业明确表示要初始化ScheduleStudentPresentationController
并将其分配给名为controller的 class 变量。因此,您应该使用this
关键字来表明。
public FormStudentSignUpForPresentationSlot()
{
InitializeComponent();
this.controller = new ScheduleStudentPresentationController();
}
现在,关于你的问题,你在这里做了什么:
Section section = controller(studentId);
您是否正在尝试“调用”对象,就像它是一种方法一样。这当然是不可能的。现在,大概是ScheduleStudentPresentationController
有一个方法可以用来获取部分。没有向我们展示该类的代码,我无法准确地向您展示您应该做什么。但是,它将是:
Section section = this.controller.getSection(studentId);
上面的代码行调用getSection
类实例的ScheduleStudentPresentationController
方法,我们已经存储在当前类的controller
变量中。该方法返回的结果存储在新变量section
中。