c# --- 泛型解決輸入和輸出型別不確定問題
阿新 • • 發佈:2019-02-06
一、背景
有這樣一個需求:一個方法,他的返回值型別不確定,方法引數的型別不做要求。
二、思考
返回值型別不確定,從繼承的角度,所以類都是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();
}