Giả sử chúng ta đã mã sau:Tại sao C# 6.0 không cho phép thiết lập các thuộc tính của một cấu trúc không null null khi sử dụng toán tử tuyên truyền Null?
struct Article
{
public string Prop1 { get; set; }
}
Article? art = new Article();
art?.Prop1 = "Hi"; // compile-error
Các lỗi biên dịch là
CS0131 Phía bên tay trái của một bài tập phải là một biến, tài sản hoặc indexer.
Thực tế art?.Prop1
là tài sản và nên được coi là bài tập hợp lệ!
Tôi không thấy bất kỳ vấn đề nào với nhiệm vụ để làm cho mã này không hợp lệ.
Tại sao C# 6.0 không cho phép đặt thuộc tính của cấu trúc không null null?
Bất kỳ đề xuất thay thế nào cho một mã dòng để thực hiện chuyển nhượng hợp lệ sẽ được đánh giá cao.
Remove dấu hỏi trong dòng của bạn 'art? .Prop1 =" Hi ";' và nhiệm vụ của bạn không nên ném một lỗi. Làm cho nó 'art.Prop1 =" Hi ";' –
@ K.AlanBates Ông đặc biệt muốn sử dụng toán tử truyền bá null. – Servy
Structs có trong C# chỉ để làm cho bạn cuộc sống thú vị. Hãy thử 'Danh sách bài viết = danh sách mới {Điều mới()}; article [0] .Prop1 = "test"; '- có thể bạn sẽ xem xét lại việc sử dụng các cấu trúc tại điểm đó :). –