Tôi đang cố tạo một lớp có giá trị a
làm tham số trong hàm tạo của nó. Nó có một biến thành viên riêng để lưu trữ giá trị này. Giá trị không được thay đổi sau đó.Xây dựng lớp mà thuộc tính của chỉ có thể được thiết lập trong hàm tạo, nhưng có được ở đâu không?
Đây là những gì tôi có, nó hoạt động nhưng tôi không nghĩ rằng đó là giải pháp tốt nhất hiện có:
internal class Foo
{
private int a;
public int A
{
get
{
return this.a;
}
}
public Foo(int a)
{
this.a = a;
}
}
Vì vậy, bằng cách này bạn không thể truy cập a
từ bên ngoài của lớp, và A
-property chỉ có một phương thức get. Tuy nhiên, bạn vẫn có thể thay đổi a
từ bên trong lớp và sử dụng thuộc tính chỉ trả về một biến và không có gì khác cảm thấy ngu ngốc.
Tôi có làm điều này đúng không, hoặc có cách nào để cải thiện mã của tôi/cách thích hợp hơn để thực hiện việc này không?
Ahh tốt đẹp, không biết 'readonly', tôi đã thử sử dụng' const' nhưng đã từ bỏ vì nó không thể được đặt trong hàm tạo. Nice :) –