我有一个泛型类,我将它的类型作为参数类型,例如int
对于我的类中的方法,如下所示:
public class UnlimitedGenericArray<T>
{
private void InsertItem(T item)
{
this.array[0] = item;
}
}
现在,例如,当我想InsertItem()
从控制台应用程序调用时,如何在运行时知道参数的类型?
static void Main(string[] args)
{
UnlimitedGenericArray<int> oArray = new UnlimitedGenericArray<int>();
while(true)
{
var userInput = Console.Readline();
oArray.InsertItem(userInput);
}
}
我可以改为编写InsertItem(object item)
,然后按如下方法进行转换:
private void InsertItem(object item)
{
this.array[0] = (T)Convert.ChangeType(item, typeof(T));
}
但这可能不是一个好习惯。我还需要知道客户端参数的类型,以便我可以在那里解析然后调用该方法。我是泛型的新手,所以请在这里帮助我。