C# - 缺少汇编/引用,面向对象编程
本文关键字:引用 面向对象编程 汇编 | 更新日期: 2023-09-27 18:30:17
我似乎找不到错误来修复我的代码。我得到了一个测试器类,并被告知要制作正确运行测试器所需的类。这是我遇到问题的代码:
测试员类
using System;
using School;
namespace School
{
class Tester
{
static void Main(string[] args)
{
Faculty scienceFac = University.createFaculty("Science");
}
}
}
教师班
using System;
namespace School
{
public class Faculty
{
public String faculty;
public Faculty(String faculty)
{
this.faculty = faculty;
}
}
}
大学班
using System;
namespace School
{
public class University
{
private int numOfFaculties;
public University()
{
numOfFaculties = 0;
}
public void createFaculty(String faculty)
{
numOfFaculties++;
new Faculty(faculty);//?????
}
public int numberOfFaculties()
{
return numOfFaculties;
}
}
}
只有测试人员显示错误,是我引用命名空间错误吗?
除了其他人在评论中提到的问题:
- 大学班级"记住"院
系的数量,但不"记住"院系本身
您无需将整数字段初始化为 0
不需要有一个
int numOfFaculties
字段和一个int numberOfFaculties()
方法 - 这就是属性的用途:public int NumberOfFaculties { get; private set; }
会做得很好。
我建议你的University
课需要像这样:
public class University
{
private readonly List<Faculty> _faculties = new List<Faculty>();
public List<Faculty> Faculties { get { return _faculties; } }
public Faculty CreateFaculty(string facultyName)
{
var faculty = new Faculty(facultyName);
_faculties.Add(faculty);
return faculty;
}
public int NumberOfFaculties { get { return _faculties.Count; } }
}
其中,CreateFaculty()
创建一个教职员工并将其存储在University
对象内的列表中,其中NumberOfFaculties
计数只是 .列表的计数。
因此,要创建一所拥有科学学院的大学,您可以这样称呼它:
University uni = new University();
Faculty scienceFac = uni.CreateFaculty("Science");
您需要更改 createFaculty 以返回 Faculty 的实例。
public Faculty createFaculty(String faculty)
{
numOfFaculties++;
return new Faculty(faculty);
}
您还需要在测试项目中创建一个 University 实例;createFaculty 不是静态的。
static void Main(string[] args)
{
var instance = new University();
var scienceFac = instance.createFaculty("Science");
}