Câu hỏi được gắn thẻ «covariance»

Phương sai, phương sai và bất biến mô tả cách phân cấp kế thừa kiểu hiện tại thay đổi khi chịu một số biến đổi (chẳng hạn như cách sử dụng trong generics). Nếu phép biến đổi giữ thứ tự của hệ thống phân cấp ban đầu, thì nó là "hiệp phương sai". Nếu nó đảo ngược nó, nó là "trái ngược". Nếu nó phá vỡ nó, nó là "bất biến".



9
Ví dụ hiệp phương sai và chống chỉ định
Tôi có một chút khó khăn để hiểu làm thế nào tôi sẽ sử dụng hiệp phương sai và chống chỉ định trong thế giới thực. Cho đến nay, các ví dụ duy nhất tôi thấy là cùng một ví dụ mảng cũ. object[] objectArray = new string[] { "string …
162 c#  c#-4.0  covariance 


4
Tại sao hiệp phương sai và chống chỉ định không hỗ trợ loại giá trị
IEnumerable<T>là đồng biến thể nhưng nó không hỗ trợ loại giá trị, chỉ là loại tham chiếu. Mã đơn giản dưới đây được biên dịch thành công: IEnumerable<string> strList = new List<string>(); IEnumerable<object> objList = strList; Nhưng thay đổi từ stringthành intsẽ nhận được lỗi biên dịch: IEnumerable<int> intList = …



7
Chuyển đổi mảng đồng biến từ x sang y có thể gây ra ngoại lệ thời gian chạy
Tôi có một private readonlydanh sách LinkLabels ( IList<LinkLabel>). Sau này tôi thêm LinkLabels vào danh sách này và thêm các nhãn đó vào FlowLayoutPanelnhư sau: foreach(var s in strings) { _list.Add(new LinkLabel{Text=s}); } flPanel.Controls.AddRange(_list.ToArray()); Resharper cho tôi thấy một cảnh báo : Co-variant array conversion from LinkLabel[] to Control[] …








Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.