Trường chỉ đọc phải được sử dụng khi bạn có biến được biết tại sự biến đổi đối tượng mà không được thay đổi sau đó.trường chỉ đọc làm mục tiêu từ các hàm tạo lớp con
Tuy nhiên, người ta không được phép chỉ định các trường chỉ đọc từ các nhà xây dựng của các lớp con. Điều này thậm chí không hoạt động nếu siêu lớp là trừu tượng.
Có ai có giải thích tốt về lý do tại sao điều này không phải là ý tưởng hay hoặc thiếu trong C# languange?
abstract class Super
{
protected readonly int Field;
}
class Sub : Super
{
public Sub()
{
this.Field = 5; //Not compileable
}
}
PS: Tất nhiên bạn cũng có thể đạt được kết quả tương tự bằng cách gán các trường chỉ đọc trong một hàm tạo được bảo vệ trong lớp cha.
Ngoài ra lỗi trình biên dịch không chính xác: 'Lỗi 68 Một trường chỉ đọc không thể được gán cho (ngoại trừ trong hàm tạo hoặc biến khởi tạo biến)' – nicodemus13