KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Given this code: class C { C() { Test<string>(A); // fine Test((string a) => {}); // fine Test((Action<string>)A); // fine Test(A); // type arguments cannot be inferred from usage! } static void Test<T>(Action<T> a) { } void A(string _) { } } The compiler complains that Test(A) can't figure out T to be string . This seems like a pretty easy case to me, and I swear I've relied far more complicated inference in other generic utility and extension functions I've written. What am I missing here? Update 1: This is in the C# 4.0 compiler. I discovered the issue in VS2010 and the above sample is from a simplest-case repro I made in LINQPad 4. Update 2: Added some more examples to the list of what works.
Tags (comma-separated)
Save Edits
Cancel