在keypress上从textfile获取随机行[C#]

时间:2017-04-16 15:26:48

标签: c# random

我每次按F9时都试图从文本文件中获取随机行。

我使用的是:

static class Randomyze
{
    public static string[] allLinks = File.ReadAllLines(@"links.txt");
    public static Random randomLink = new Random();
    public static int setLink = randomLink.Next(0, allLinks.Length - 1);
    public static String getLink = allLinks[setLink];
}

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == Keys.F9)
    { 
        MessageBox.Show(Randomyze.getLink); 
    }
        return true;
    else
    {
        return base.ProcessCmdKey(ref msg, keyData);
    }
}

但是当我按下F9时,我仍然保持同样的路线。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您的代码会在程序启动时生成一个随机数。您需要对其进行修改,以便在每次按下该键时生成一个新的随机数。

提示:根本不要使用static

答案 1 :(得分:1)

这两行:

        public static int setLink = randomLink.Next(0, allLinks.Length - 1);
        public static String getLink = allLinks[setLink];

初始化类时只执行一次。

您的命名约定实际上是指向您想要的方式。动词(get,set,here)通常应该与函数相对应。尝试将这些重写为函数,返回感兴趣的项目(链接索引,文件中的链接)。