Các công trình sau đây trong C#:Tại sao một thuộc tính thực hiện trong VB.NET phải khớp với các chỉ số 'ReadOnly' phù hợp?
interface I
{
int X { get; }
}
class C : I
{
public int X
{
get { ... }
set { ... }
}
}
Sau đây không hoạt động trong VB.NET:
Interface I
ReadOnly Property X As Integer
End Interface
Class C
Implements I
Public Property X As Integer Implements I.X
Get
...
End Get
Set(value As Integer)
...
End Set
End Property
End Class
Thông báo lỗi Implementing property must have matching 'ReadOnly' or 'WriteOnly' specifiers
là khá tự giải thích, vì vậy tôi biết có gì sai ở đây. Nó cũng không phải là một vấn đề lớn, bởi vì nó khá dễ dàng để làm việc xung quanh giới hạn này.
Tôi tò mò, mặc dù: Có ai biết tại sao các nhà thiết kế VB quyết định xử lý trường hợp này khác với C#?
Tôi không thấy người đọc chỉ đọc trên thuộc tính của bạn trong phiên bản C của giao diện? – Nikki9696
@ Nikki9696: Việc thiếu một setter trong phiên bản C# là tương đương, về cơ bản. –
@ Nikki9696 Điều đó được ngụ ý. Sự khác biệt là nó không cần thiết. Nhưng, Heinzi, bạn xác định rõ ràng nó trong phiên bản giao diện VB.NET, vì vậy đó là một sự khác biệt khá lớn. –