【发布时间】:2017-08-10 14:20:38
【问题描述】:
我大约一年前开始涉足 Lua,并在最近发现 Unity 时决定学习 C#!
这一切都非常令人兴奋,但由于对 Lua 的理解极其有限,我真的很难理解这个概念:
// C# Random Number:
Random r = new Random();
r.Next(5, 10)
据我所知,在 Lua 中我会简单地这样做:
-- Lua Random Number:
r = math.random(5, 10)
我的问题是:
在 C# 中,为什么我必须创建这个 Random 类的实例?为什么我不能使用与上面 Lua 示例类似的语法从 Random.Next(5, 10) 方法中获取一个随机值并将其分配给 'r'? (我问这个是因为我不必创建 Console 类的新实例来调用 WriteLine 方法......这就是我在这一点上感到困惑的原因)。
我注意到控制台的 IDE 自动完成显示:'public static class',而对于 Random,它显示:'public class'。如果 Console 是“静态”的,这就是我们不需要创建“新”实例的原因吗?
我已阅读此内容:https://www.dotnetperls.com/static,但我缺少一些基本的拼图,所以仍然不完全理解这个概念。
我正在寻求帮助来理解这个概念,所以请用一些例子来回答问题(就像我是一个完全的初学者一样)。
【问题讨论】:
-
因为Random不是静态类,所以Console是静态类。至于学习,我总是建议使用 Pluralsight,因为它做得很好。您可以通过 Microsoft 的 Dev Essentials 获得免费订阅。
-
听起来你基本上需要找到一本好的C#书。不要只是试图从网上的点点滴滴中学习——买一本好书。 Essential C# 或 C# in a Nutshell 将是很好的起点。
-
拥有实例
Random的原因是,顺便说一下,您可以创建具有不同种子甚至实现的随机数生成器并传递它们。 -
我认为这可能是由于“静态”类。我离推理还差那么远,但它仍然没有澄清我脑海中的概念! :D