在c#中使用方法和传递变量时遇到问题

时间:2017-10-01 16:18:50

标签: c# methods syntax

我在使用此作业中的方法时遇到问题。我的指示是

使用包含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);
        }
    }
}

1 个答案:

答案 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中。