Test your C#: Generic overloaded constructors
I love languages. Here's one for a language nut.
public class Response<T> {
private T result;
private string error;
public Response(T result) { this.result = result; }
public Response(string message) { this.error = message; }
}
You can use this generic class as a wrapper for returning data.
return new Response<int>(1000);
Or to return an abnormal result
return new Response<int>("Something has gone wrong");
Question 1
The fun part then, is what happens when you have this?
var result = new Response<string>("Is this a result or an error?");
What is result
Question 2
What about this:
public class Sample
{
public static Response<T> GetSample<T>(T arg)
{
return new Response<T>(arg);
}
}
and then:
var result = Sample.GetSample("Is this an error?");
What is result