Could you describe what generic type inference is and what will be the output of this program?
static void SomeMethod(object parameter)
static void SomeMethod<T>(T parameter)
static void Main(string args)
object obj = "x";
string s = "x";
The method overload is chosen by parameter matching and in the first call to SomeMethod, the object passed to the method is of type object. For that reason the overload with object parameter is used and "Hello" is sent to the console.
In the second call to SomeMethod the object passed to the method is of type string. The generic type T is inferred from the string parameter and for that reason the overload with T parameter is used and "World" is sent to the console.
So the final output will be the following:
It's quite useful to know about generic type inferrence. See the links below to read more about how it can be used in the real world to simplify your code.
Read these great articles:
Related C# job interview questions
What is variable capturing good for and how does it work?.NETC# Senior
What will be the output of the following code that is using delegates?.NETC#Code challenge Senior
What is the difference between IEnumerable and IQueryable?.NETC#Entity FrameworkLINQPerformance Senior
What is boxing and unboxing?.NETC#Performance Junior
Do you use generics? What are they good for? And what are constraints and why to use them?.NETC#Performance Medior