class Student
{
private int Id { get; set; }
public Student(int current_Id)
{
this.Id = current_Id;
}
}
如何在我的类的构造函数中分配属性ID后阻止对其进行更改。如果我对const
使用Id
,我会收到错误。
答案 0 :(得分:0)
将Id
标记为只读:
public readonly int ID;
只能在类的构造函数中更改readonly
属性。 Docs
此外,您似乎对current_Id
感到困惑。如果您想让每个学生都有不同的ID,请在课程中使current_Id
成为私有静态字段,而不是构造函数参数。
private static int current_Id = 0;
const
不起作用的原因是标有const
的内容在编译时必须具有常量值。显然,学生证不是这样的价值。
答案 1 :(得分:0)
您拥有隐私自动属性。从创建实例的作用域创建实例后,您无法更改任何这些值。改变它们的唯一方法是改变Class的范围。如果您不想允许更改它们(仅允许来自construtor),您可以通过以下方式进行更改
private int Id { get; }
或者您可以使用 readonly 字段中的属性,如@ Sweeper的回答中所述。