我正在制作一个有查找选项的记事本.当你输入一个单词时,它会找到它并突出显示它.我得到了它的工作,但我已达到一个墙,我似乎无法通过我目前正在使用的方法.我目前正在将文本框中的所有单词分成''并加上单词的长度,直到我找到输入的搜索词,这样我才能看到找到的单词到底在哪里,所以我可以突出显示它.
我现在遇到的问题是,因为我使用split('')来获取文本框中的每个单词,每当用户添加一个新行时,split的返回数组将是"wordOnFirstLine\r \nnwordOnSecondLine".所以他们将被算作一个字.我可以在文本框中找到一个单词并查看其确切位置的另一种方式,以便我可以突出显示它?
如果我有这个:(我已经宣布变量)
random1 = new Random();
Console.WriteLine(random1.Next(1, 100));
Console.WriteLine(random1.Next(1, 100));
Run Code Online (Sandbox Code Playgroud)
当我拥有它时,每次调用console.writeline时它都会生成一个不同的数字,所以这会生成ex.10,55,如果你再次做20,60所以基本上随机数每次都很好.但是当我添加这个:
random2 = new Random();
Console.WriteLine(random1.Next(1, 100));
Console.WriteLine(random1.Next(1, 100));
Console.WriteLine(random2.Next(1, 100));
Console.WriteLine(random2.Next(1, 100));
Run Code Online (Sandbox Code Playgroud)
Random1将生成与随机数相同的数字!所以它将是前任.5,54,5,54如果我再做70,34,70,34.但它的random2是一个新对象,为什么它生成与random1相同的数字?
另一个例子:如果我有这样的课程
class RandomNumber
{
Random random = new Random();
public int getrandomnumber { get { return random.Next(1, 5); } }
}
Run Code Online (Sandbox Code Playgroud)
这样做之后
randomnumberobject = new RandomNumber();
randomnumberobject2 = new RandomNumber();
Console.WriteLine(randomnumberobject.getrandomnumber);
Console.WriteLine(randomnumberobject2.getrandomnumber);
Run Code Online (Sandbox Code Playgroud)
它们会生成一个随机数,但它们都会产生完全相同的随机数.所以我第一次得到这个5,3秒这个3,3等等.但是,如果我将课程更改为此
class RandomNumber
{
Random random;
public int getrandomnumber { get { return random.Next(1, 5); } }
public RandomNumber(Random random) { this.random = random; } …Run Code Online (Sandbox Code Playgroud)