c#创建一个学生类(Student),包含:学号、姓名、科目、成绩等字段,通过字符串索引器获取或设置各科成绩的值。
时间: 2024-09-28 19:06:44 浏览: 43
在C#中,我们可以创建一个名为`Student`的类来表示学生信息,包括学号、姓名、科目列表以及成绩。为了提供方便的访问,我们将使用`Dictionary<string, int>`作为成绩字典,通过字符串索引来获取或设置各科成绩。以下是这个类的一个简单实现:
```csharp
public class Student
{
private string id;
private string name;
private Dictionary<string, int> grades;
// 构造函数
public Student(string id, string name)
{
this.id = id;
this.name = name;
this.grades = new Dictionary<string, int>();
}
// 学号和姓名属性及getter和setter
public string Id { get => id; set => id = value; }
public string Name { get => name; set => name = value; }
// 字符串索引器,用于获取和设置成绩
public int this[string subject]
{
get
{
if (grades.ContainsKey(subject))
{
return grades[subject];
}
else
{
throw new ArgumentException("Subject not found");
}
}
set
{
if (!grades.ContainsKey(subject))
{
grades.Add(subject, value);
}
else
{
grades[subject] = value;
}
}
}
// 示例:添加和查询成绩
public void AddGrade(string subject, int grade)
{
this[subject] = grade;
}
public int GetGrade(string subject)
{
return this[subject];
}
}
// 使用示例
Student student = new Student("001", "张三");
student.AddGrade("数学", 95);
int mathGrade = student.GetGrade("数学"); // 返回95
```
阅读全文