【发布时间】:2017-12-22 18:59:58
【问题描述】:
我是 C# 的初学者。
我可以使用局部变量来声明局部变量吗?
我想生成 4 个不重复的唯一随机数 0-100,但现在我被这些变量困住了。我正在尝试使用另一个局部变量数据声明这些局部变量,但我不能,因为语句从上到下运行。例如从下面的代码:我不能声明 index1,因为 exclude1 还没有被声明。如果有人可以帮助我解决这个问题或提出一种新方法,将不胜感激。谢谢!
var rand = new System.Random();
int index1 = rand.Next(0, 101 - exclude1.Count);
int index2 = rand.Next(0, 101 - exclude2.Count);
int index3 = rand.Next(0, 101 - exclude3.Count);
int index4 = rand.Next(0, 101 - exclude4.Count);
var exclude1 = new HashSet<double>() { index2, index3, index4 };
var exclude2 = new HashSet<double>() { index1, index3, index4 };
var exclude3 = new HashSet<double>() { index2, index1, index4 };
var exclude4 = new HashSet<double>() { index2, index3, index1 };
【问题讨论】:
-
exclude1.Count 变量 exclude1 未声明如何获取未声明对象的计数
-
您的变量循环地相互依赖。你认为这应该如何运作?您认为这是在哪种其他编程语言中工作的?如果您知道
excludes将只有 3 个项目,那么您应该直接使用 3 而不是使用 Count of excludes。 -
你问过XY Problem。您的真正问题是如何生成一系列唯一随机数。您提出的计划是行不通的,但您仍然在询问如何实施该计划。不要那样做。相反,请使用有效且已得到解答的算法。考虑到 0-100 的小数字范围,随机排列的数组似乎是理想的。有关示例和其他想法,请参阅标记的重复项。
-
我想为生成的 4 个唯一数字设置 4 个不同的变量,因为我想让它显示在 Unity 中的 4 个单独的 UI 文本框中。