Tôi đã tìm kiếm một chút về suy luận kiểu, nhưng dường như tôi không thể áp dụng bất kỳ giải pháp nào cho vấn đề cụ thể của mình.Loại suy luận về các hàm chung lồng nhau
Tôi đang làm rất nhiều công việc với việc xây dựng và truyền tải các chức năng. Điều này dường như với tôi như nó sẽ có thể suy ra các loại int. Điều duy nhất tôi có thể nghĩ là kiểu trả về lambda không được kiểm tra bởi thuật toán suy luận kiểu. Tôi đã loại bỏ logic không cần thiết để hiển thị vấn đề rõ ràng hơn.
Func<T> Test<T>(Func<Func<T>> func)
{
return func();
}
này biên dịch:
Func<int> x = Test<int>(() =>
{
int i = 0;
return() => i;
});
nhưng điều này cung cấp cho các lỗi "Những lập luận kiểu cho phương pháp không thể được suy ra từ việc sử dụng Cố gắng xác định các đối số loại một cách rõ ràng.":
Func<int> x = Test(() =>
{
int i = 0;
return() => i;
});
Tôi đoán tôi chỉ muốn biết tại sao nó hoạt động theo cách này và bất kỳ cách giải quyết nào.
câu hỏi rất giống nhau, nhưng không hoàn toàn giống nhau http://stackoverflow.com/questions/6090159/inferring-generic-types-with-functional-composition –