一、背景
有这样一个需求:一个方法,他的返回值类型不确定,方法参数的类型不做要求。
二、思考
返回值类型不确定,从继承的角度,所以类都是object的子类,返回object即可。但是这种方法是类型不安全的,需要进行类型转换。
我们可以使用泛型解决这个问题。我理解的泛型就是一类类型,或者相当于一个类型集合。
三、具体方案
public static T GetValueBy<T>(T input)
{
return input;
}
public static object GetValue(object input )
{
return input;
}
static void Main(string[] args)
{
int a = (int)GetValue(1);
bool b = (bool)GetValue(true);
string c = (string)GetValue("string");
int d = GetValueBy(1);
bool e = GetValueBy(true);
string f = GetValueBy("string");
Console.WriteLine($"a:{a.ToString()}");
Console.WriteLine($"b:{b.ToString()}");
Console.WriteLine($"c:{c.ToString()}");
Console.WriteLine($"d:{d.ToString()}");
Console.WriteLine($"e:{e.ToString()}");
Console.WriteLine($"f:{f.ToString()}");
Console.ReadKey();
}