There is an awkward trick for achieving this: You need to first cast your instance to object
.
public T Deserialize<T>(string response)
{
string[] words = response.Split(' ');
List<string> wordsList = words.ToList();
return (T)(object)wordsList;
}
This assumes that your caller specifies List<string>
as the generic type.
var x = Deserialize<List<string>>("hello world"); // gives "hello", "world"
var y = Deserialize<int>("hello world"); // throws InvalidCastException