我想将列表作为参数发送给函数。我想做这样的事情:
public class SchoolClass
{
private int index = 0;
private string name = string.Empty;
private List<Student> students = new List<Student>();
public List<Student> Students
{
get { return students; }
set { students = value; }
}
public void AddStudent(string name, int age)
{
Student newStudent = new Student();
newStudent.Name = name;
newStudent.Age = age;
if (Students.Contains(newStudent))
{
Students.Add(newStudent);
Console.WriteLine(newStudent.ToString());
Console.ReadLine();
}
}
public void RemoveStudent(int studentId)
{
Student foundStudent = Students.Where(x => x.Id == studentId).FirstOrDefault();
if (foundStudent != null)
{
Students.Remove(foundStudent);
}
}
public void CheckIfClassEampty(List<Student> students) <----here
{
}
最好的方法是什么?
答案 0 :(得分:1)
由于CheckIfClassEmpty是该类的一部分,因此您根本不需要将列表作为参数传递。您可以访问内部字段和属性,例如
public bool CheckIfClassEmpty()
{
// access Students or students directly
}
如果您希望将列表作为参数传递,那么您的方法签名是正确的,您只需要传递数据即可。
var school = new SchoolClass();
school.CheckIfClassEmpty(school.Students);
答案 1 :(得分:0)
如果我理解你的问题,那么
您不能将Properties作为方法参数传递,而是传递后备变量。
答案 2 :(得分:0)
很难知道你在问什么,但我怀疑这会达到你想要的效果: -
public bool HasStudents()
{
return students.Any();
}
我已经改变了方法的标题,因为我认为HasStudents可能是你想要实现的更好的名称。