我用c#编程。我编写了一个生成随机imei的方法,它有15个从0到9的数字。我使用StringBuilder将它们组合在一起,并将整个代码作为字符串返回。
public static string randomIMEIgenerator()
{
var builder = new StringBuilder();
while (builder.Length < 15)
{
builder.Append(Rnd.Next(10).ToString());
}
return builder.ToString();
}
现在问题是我想运行这个方法x次,因为我想生成x imei代码。为什么当我写for循环时我得到这个错误?
非静态字段,方法或者需要对象引用 属性
我的主要职能:
private static readonly Random Rnd = new Random();
int x = 5;
public static void Main(string[] args)
{
for (int i = 0; i < x; i++)
{
randomIMEIgenerator();
}
}
我还想将所有随机生成的imei存储到一个数组中。我应该这样做吗?
String[] array = new String[x];
for (int i = 0; i < x; i++)
{
array = randomIMEIgenerator();
}
然而,我的主要问题是关于这个错误。
P.S。如果我只运行一次,它会生成一个imei号码。因此randomIMEIgenerator方法正常工作。
答案 0 :(得分:2)
你的'x'变量是从静态方法调用的,所以它也应该是静态的
private static int x = 5;
要将所有这些imeis存储在数组中,请添加要在其中存储变量的索引:
String[] array = new String[x];
for (int i = 0; i < x; i++) {
array[i] = randomIMEIgenerator();
}
作为旁注:您不生成IMEI号码。 imei号码应以校验位结尾,使用Luhn Algorithm
计算答案 1 :(得分:1)
正如Fortega所说,如果在主方法之外定义,int x
必须是静态的。
我还建议将RNG作为参数传递给函数,而不是依赖于静态变量。
要分配给数组,请传递正确的数组索引。
String[] array = new String[x];
for (int i = 0; i < x; i++) {
array[i] = randomIMEIgenerator();
// ^
}