这个问题在这里已有答案:
所以我在.Net Core中构建这个代码并且它的工作非常好但是当我在.NetFramework中使用这个代码它真的很慢并且没有加快步伐
static int wichOneIsBigger(Random rand, int number)
{
//65-90 (Upper) 97 122 (Lower)
Exception e = new Exception("Number must be 0 for lower case and 1 for upper case");
if (number != 0 && number != 1)
throw e;
else
if (number == 0)
return rand.Next(97, 122);
else
return rand.Next(65 - 90);
}
static void Main()
{
string txt = null;
Random rand = null;
int length = 0;
Console.WriteLine("Please type a number that is above 1: ");
txt = Console.ReadLine();
length = Convert.ToInt32(txt);
string[] words = new string[length];
for (int i = 0; i < length; i++)
{
rand = new Random();
int characters = rand.Next(4, 10);
int randCharacter = 0;
int wichOne = 0;
string word = "";
for (int num = 0; num < characters; num++)
{
wichOne = rand.Next(0, 1);
randCharacter = wichOneIsBigger(rand, wichOne);
word += Convert.ToChar(randCharacter);
}
words[i] = word;
}
foreach (string item in words)
Console.WriteLine(item);
GC.Collect();
Console.ReadKey();
}
当我使用.Net Core它给我这个结果,例如长度是5:
gaerantd
dxunjxtw
gevnyiqb
xhpsvfqu
gnnkaulxg
但是,当我使用.Net Framework时,它给了我这个
aist
aist
aist
aist
aist
为什么在.Net Framework中它不会加快步伐?我没有编程2。5年,我不记得.Net框架这么慢
顺便问一下你们对我的代码有任何建议吗?我可以写得更好等吗?
谢谢您的帮助 :)
这一行:在你的循环中写的rand = new Random();
可能不会是随机的,我不认为它与慢度有什么关系?将您的代码更改为以下内容:
static Random rand = new Random();
static void Main()
{
//..etc
}
很可能是因为.Net Core是.Net的精简版本,因此排除了很多软件包。对于大多数应用程序,如果您可以使用.Net Core,它可能会更快。