Vấn đề của một công văn đơn giản là quen thuộc với những người tham gia vào mã hóa với các ngôn ngữ gõ tĩnh như Java và C#. Ý tưởng cơ bản là:Loại biến 'động' mới trong .NET 4.0 giải quyết vấn đề gửi phương thức đơn/đa trong CLR?
Trong khi đa hình runtime cho phép chúng tôi để gửi đến các phương pháp gọi đúng theo các loại (loại runtime) của receiver
, ví dụ:
IAnimal mything = new Cat();
mything.chop();
Cuộc gọi phương pháp sẽ được thực hiện theo loại thời gian chạy là mything
, cụ thể là Cat
. Đây là khả năng gửi đơn (có trong Java/C#).
Bây giờ, nếu bạn cần phải gửi không chỉ vào loại thời gian chạy của máy thu, nhưng trên các loại (nhiều) lập luận một trong hai, bạn phải đối mặt với một vấn đề nhỏ:
public class MyAcceptor {
public void accept (IVisitor vst) {...}
public void accept (EnhancedConcreteVisitor vst) {...}
}
Phương pháp thứ hai không bao giờ được gọi , bởi vì trong mã 'người tiêu dùng' của chúng tôi, chúng tôi chỉ có xu hướng xử lý các loại đối tượng khác nhau (khách truy cập trong ví dụ của tôi) bởi siêu kiểu hoặc giao diện phổ biến của họ.
Đó là lý do tại sao tôi hỏi - vì gõ năng động cho phép các công văn đa hình nhiều và C# 4.0 có từ khóa năng động;)
Vấn đề gửi đơn/đa phương thức là gì? –
Tôi sẽ cập nhật câu hỏi của mình bằng liên kết wikipedia) – Bubba88
Huh, là câu hỏi _that_ way stupid? Hoặc tôi chỉ bỏ lỡ một cái gì đó? – Bubba88