Nếu tôi có một tham số động, trình biên dịch dường như sẽ loại bỏ kiểu trả về và nghĩ rằng nó là động.Tham số động làm cho trình biên dịch nghĩ rằng phương thức trả về là động
Ví dụ:
public MethodResult IsValid(object userLogin)
{
return new MethodResult();
}
Bạn sẽ nghĩ rằng:
var isValidResult = IsValid(someObject());
nên đọc như
dynamic -> MethodResult
Nhưng nó nghĩ rằng nó là:
dynamic -> dynamic
Việc thêm một tham số động vào chữ ký hoàn toàn có thể dừng trình biên dịch không biết sự trở lại nên là gì dù có được gõ mạnh không?
Để biết thêm chi tiết, hãy kiểm tra [MSDN - Sử dụng loại động] (http://msdn.microsoft.com/en-us/library/dd264736.aspx) - "Độ phân giải quá tải xảy ra tại thời gian chạy thay vì tại thời gian biên dịch nếu một hoặc nhiều đối số trong một cuộc gọi phương thức có kiểu động, hoặc nếu người nhận cuộc gọi phương thức có kiểu động. " - Vì vậy, kết quả là nó không được biết đến cho đến khi chạy, phương thức nào sẽ được gọi. –