C# 为什么要举一个新的例子?

C# 为什么要举一个新的例子?,c#,C#,我想知道为什么我们需要一个类的新实例 int coin; Random randomNum = new Random(); coin = randomNum.Next(0, 2); 我必须这样做随机数=新随机数() 为了得到这个随机数。下一步(0,2) 为什么我不能 coin=random.Next(0,2) 为什么我必须先给它一个变量“randomnum”?如果不需要两个赋值,可以这样写: var coin = (new Random()).Next(0, 2); 但是-这仍然会创建一个

我想知道为什么我们需要一个类的新实例

int coin;

Random randomNum = new Random();
coin = randomNum.Next(0, 2);
我必须这样做<代码>随机数=新随机数()
为了得到这个<代码>随机数。下一步(0,2)

为什么我不能

coin=random.Next(0,2)


为什么我必须先给它一个变量“randomnum”?

如果不需要两个赋值,可以这样写:

var coin = (new Random()).Next(0, 2);

但是-这仍然会创建一个新的随机实例。必须创建新实例的原因是类/方法不是
静态的

如果不需要两个赋值,可以这样编写:

var coin = (new Random()).Next(0, 2);

但是-这仍然会创建一个新的随机实例。您必须创建一个新实例的原因是,类/方法不是静态的,面向对象编程使用对象的隐喻来模拟现实世界的概念。类就像一组对象的蓝图。通过创建一个类的新实例,您可以使用这些蓝图来创建对象。一旦创建了对象,您就可以对其调用方法(例如示例中的
Next(0,2)

面向对象编程使用对象的隐喻来模拟现实世界的概念。类就像一组对象的蓝图。通过创建一个类的新实例,您可以使用这些蓝图来创建对象。一旦创建了对象,您就可以对其调用方法(例如示例中的
Next(0,2)

假设在现实生活中您需要一个随机数。你需要制造一台能输出随机数的机器。所以你得到了一些关于如何制造这样一台机器的蓝图,然后你就去制造它。然后,你可以坐下来用机器来获取你的随机数


在编程示例中,
Random
是创建这种机器的蓝图,
randomNum
是您制作的机器,
coin=randomNum.Next(0,2)
是指你使用机器获取随机数。

说在现实生活中你需要一个随机数。你需要制造一台能输出随机数的机器。所以你得到了一些关于如何制造这样一台机器的蓝图,然后你就去制造它。然后,你可以坐下来用机器来获取你的随机数



在编程示例中,
Random
是创建这种机器的蓝图,
randomNum
是您制作的机器,
coin=randomNum.Next(0,2)
您是否正在使用计算机获取随机数。

为什么要问问题而不是阅读MSDN中的C#编程参考?从这里开始:因为它是一个对象,需要创建对象。特别是在
Random
中,会发生一些事情来初始化内部种子和值等?因为无论是谁在基类库中设计了
Random
类,都决定将其作为实例类而不是静态类。这段代码可能有多种原因,比如允许您传入一个种子,这有助于生成随机值?2)为什么
Next()
是一个实例方法?为什么要问一个问题而不是阅读MSDN中的C#编程参考?从这里开始:因为它是一个对象,需要创建对象。特别是在
Random
中,会发生一些事情来初始化内部种子和值等?因为无论是谁在基类库中设计了
Random
类,都决定将其作为实例类而不是静态类。这段代码可能有多种原因,比如允许您传入一个种子,这有助于生成随机值?为什么
Next()
是一个实例方法?这是一个正确的答案。此外,如果您要多次使用变量随机静态,那么创建变量随机静态有很好的习惯。@Malin:为什么要创建它静态?为什么不根据需要在本地作用域或类作用域中使用它?@siride因为Random使用时间戳作为种子,所以Next()生成的数字可能不正确random@Malin,我的意思是为什么它需要是静态的?您可能在代码中有一个或多个位置需要一系列随机数,并且该部分代码可以共享一个实例,但不一定需要使用静态来完成。@sride我并不是说需要,只是说这是一个很好的习惯。最佳实践(根据我的经验)是使用静态助手类来处理随机线程问题。还有:这是一个正确的答案。此外,如果您要多次使用变量随机静态,那么创建变量随机静态有很好的习惯。@Malin:为什么要创建它静态?为什么不根据需要在本地作用域或类作用域中使用它?@siride因为Random使用时间戳作为种子,所以Next()生成的数字可能不正确random@Malin,我的意思是为什么它需要是静态的?您可能在代码中有一个或多个位置需要一系列随机数,并且该部分代码可以共享一个实例,但不一定需要使用静态来完成。@sride我并不是说需要,只是说这是一个很好的习惯。最佳实践(根据我的经验)是使用静态助手类来处理随机线程问题。还有:解释得很好。我现在很明白了。谢谢,没问题!如果你觉得这回答了你的问题,你应该帮助任何人在未来寻找类似的问题。解释得很好。我现在很明白了。谢谢,没问题!如果你觉得这回答了你的问题,你应该帮助任何人在未来寻找类似的问题。