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".

14
Trong C #, tại sao một đối tượng List <string> không thể được lưu trữ trong một biến List <object>
Có vẻ như một đối tượng Danh sách không thể được lưu trữ trong một biến Danh sách trong C #, và thậm chí không thể được truyền một cách rõ ràng theo cách đó. List&lt;string&gt; sl = new List&lt;string&gt;(); List&lt;object&gt; ol; ol = sl; kết quả là Không thể …

9
C # có hỗ trợ hiệp phương sai kiểu trả về không?
Tôi đang làm việc với .NET framework và tôi thực sự muốn có thể tạo một loại trang tùy chỉnh mà tất cả trang web của tôi đều sử dụng. Sự cố xảy ra khi tôi đang cố gắng truy cập trang từ một điều khiển. Tôi muốn có thể …
84 c#  covariance 

15
C #: Ghi đè các loại trả lại
Có cách nào để ghi đè các kiểu trả về trong C # không? Nếu vậy thì làm thế nào, và nếu không thì tại sao và cách làm được khuyến nghị là gì? Trường hợp của tôi là tôi có một giao diện với một lớp cơ sở trừu …

1
Điều gì làm cho ValueTuple covariant?
Điều này biên dịch chính xác trong C # 7.3 (Khung 4.8): (string, string) s = ("a", "b"); (object, string) o = s; Tôi biết rằng đây là đường cú pháp cho những điều sau đây, cũng được biên dịch chính xác: ValueTuple&lt;string, string&gt; s = new ValueTuple&lt;string, string&gt;("a", "b"); …

1
C # foreach hành vi bất ngờ
Tại sao trình biên dịch C # cho phép điều này biên dịch và ném ngoại lệ thời gian chạy khi chạy? class Program { static void Main(string[] args) { IEnumerable&lt;Test&gt; list = new List&lt;Test&gt;() { new Test() }; foreach(IDisposable item in list) { } } } public class Test …
8 c#  covariance 
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.