【发布时间】:2020-02-10 18:23:08
【问题描述】:
我正在使用我自己的自定义堆栈类,并且我正在尝试创建一个通用方法来创建一个新堆栈(一个通用对象)。我经常使用 int 类型的堆栈,只是偶尔需要其他类型。我可以将 T 的默认类型设置为 int 吗?
方法如下:
public static Stack<T> newStack<T>(int length)
{
Stack<T> s = new Stack<T>();
for (int i = 0; i < length; i++)
{
Console.WriteLine("print num");
string input = Console.ReadLine();
T value = (T)Convert.ChangeType(input, typeof(T));
s.Push(value);
}
return s;
}
我想用这样的方法:
newStack(5);//defult int type
对于任何其他类型
newStack<string>(5)
有人可以帮忙吗?谢谢。
【问题讨论】:
-
有a few old questions 说你不能,但我不知道事情是否发生了变化。那里的建议是制作另一种没有泛型参数的方法,只调用 int 版本。