【发布时间】:2016-07-18 05:55:33
【问题描述】:
邦乔诺,各位。您能否解释一下如何在泛型方法中执行操作。我想要一个由不同无符号整数组成的随机数组。 IDE 不允许我将 Double (和其他)与通用结构相乘。我尝试以任何方式进行类型转换都不起作用。 也许我最好停止“设计自行车”并从通用方法中调用每种整数类型的几种方法之一?
public static T[] getRandArray<T>(int amount) where T: struct
{
FieldInfo maxValueField =
typeof(T).GetField(
"MaxValue",
BindingFlags.Public | BindingFlags.Static
);
T maxValueOfT = (T)maxValueField.GetValue(null);
Random randNum = new Random();
T[] array = new T[amount];
for (int i = 0; i < amount; i++)
{
array[i] = (T)(randNum.NextDouble()) * maxValueOfT;
}
return array;
}
【问题讨论】:
-
这里已经很好地解释了 - stackoverflow.com/a/10951577/6599219