如果使用以下语法链接构造函数调用:
public frmConfirm(): this(1)
Run Code Online (Sandbox Code Playgroud)
何时重载的构造函数被调用?此外,有人可以确认,如果类是一个表单,在两个构造函数中调用InitializeComponent()会产生问题吗?
可能重复:
c# - 重复获取相同的随机数
随机数生成器不按照我计划的方式工作(C#)
我有一个构建int队列的方法:
public Queue<int> generateTrainingInts(int count = 60)
{
Queue<int> retval = new Queue<int>();
for (int i = 0; i < count; i++)
{
retval.Enqueue(JE_Rand.rInt(2001, 100));
}
return retval;
}
Run Code Online (Sandbox Code Playgroud)
JE_Rand.rInt()只是一个委托给Random类函数的函数:
public static int rInt(int exclUB, int incLB = 0)
{
Random rand = new Random(DateTime.Now.Millisecond);
int t = rand.Next(incLB, exclUB);
rand = null;
return t;
}
Run Code Online (Sandbox Code Playgroud)
但是当我调用generateTrainingInts时,每次都会将相同的数字排入队列.但是,如果我更改rInt以使用Random类的静态实例,而不是本地实例(具有上面定义的函数作用域),那么它似乎正常工作(排队随机整数).有人知道为什么会这样吗?
编辑:亲爱的答案者没有彻底阅读我的问题,就像你们中的一些人指出的那样,我正在寻找一个很好的解释为什么会发生这种情况.我不是在寻找同一数字生成问题的解决方案,因为我已经解决了,就像我上面所说的那样.感谢你的热情:)我真的只想了解这样的事情,因为我的第一次实现对我来说在概念上更有意义.
我有两台显示器(两台显示器)连接到我的机器上,我注意到今天发生了一件奇怪的事情.我在我的主显示器上打开了一个资源管理器窗口和我编译的exe,当我双击它时,它在主显示屏(左侧监视器)中打开.但是,如果我按Enter键启动可执行文件,它将在辅助显示器(右侧监视器)中启动.初始形式的窗口状态最大化.有没有办法告诉C#在主显示屏中打开初始表单?