【发布时间】:2020-04-26 21:06:35
【问题描述】:
public static void GenerateRandomd<T>(D_List<T> list, int size, Random rand)
{
if (list is D_List<int>)
{
for (int i = 0; i < size; i++)
list.Push_Back(rand.Next(0, 10000));
}
else if (list is D_List<string>)
{
for (int i = 0; i < size; i++)
list.Push_Back(Gen_rand_string(rand));
}
else
{
for (int i = 0; i < size; i++)
list.Push_Back(rand.NextDouble());
}
}
你好!有可能实现这样的事情吗?提前谢谢你。
【问题讨论】:
-
您能否澄清(最好使用words)您想要实现的目标?确实有可能获得帖子中显示的代码进行编译...(即通过具有通用
Push_Back<T>以及非通用Push_Back(double))但这可能不是您想要实现的... -
旁注:您是在寻找“模板”(如在编译时使用 T4 之类的代码生成)还是“泛型”(问题中使用的代码)?使用错误的标签预计会带来您不感兴趣的答案。
-
如果我尝试执行此代码,它将返回错误“无法从“int”转换为“T””。是否有可能在离开作业时以某种方式避免这种情况?
标签: c# templates linked-list