【问题标题】:Random.Next C# doesnt work like i wantRandom.Next C# 不像我想要的那样工作
【发布时间】:2018-04-10 23:42:10
【问题描述】:

我尝试创建一个每日奖励系统。但我有一个问题。

首先是代码:

Random rndDailyItem = new Random();
short[] itemIds = { 9023, 9041 };
rndDailyItem.Next(0, itemIds.Length);

所以,问题是:我想要“itemIds”作为输出,但我现在得到的输出只是 0 或 1,我做错了什么?

代码的“其余部分”是这样的:

编辑:

                if (rndDailyItem != null)
                {

                    session.Character.DailyBonus = DateTime.Now.AddDays(1);

                    session.Character.SendGift(session.Character.CharacterId, Convert.ToInt16(rndDailyItem.Next(0, itemIds.Length)), Convert.ToByte(rndDailyAmount.Next(0, itemAmount.Length)),
                        0, 0, false);
                    session.SendPacket(
                        session.Character.GenerateSay(Language.Instance.GetMessageFromKey("DAILY_RECEIVED"), 10));
                }
                else
                {
                    session.SendPacket(
                        UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("ERROR_MESSAGE"),
                            0));
                }

这是代码的较大部分。我不能添加我想要的那么多代码行,因为 stackoverflow 告诉我它的代码太多。对不起。感谢您的帮助

【问题讨论】:

  • 为什么不将代码的“rest”(“rest”和rest 有什么区别?:-) 添加到您的实际代码中,以便我们持续报告您正在运行的代码?当您使用它时,发布可以编译的代码,而不是近似值 (CharacterId, Convert...)。代码是一个精确的东西,所以当你问问题时,你也需要精确。
  • “但我得到的输出”什么都不是。根据您发布的代码,没有输出。我们不必猜测,因为您没有发布代码。
  • 已编辑。我不能再做了。希望你现在能帮助我。

标签: c# random


【解决方案1】:

当然你需要使用随机的索引来访问你想要的项目。

short[] itemIds = { 9023, 9041 };
int index = rnd.Next(0, itemIds.Length);
short here_is_the_value = itemIds[index];

【讨论】:

  • 这对我不起作用。它只是在这行“return itemIds [index];”之后执行代码无法访问。
  • 哈哈,好吧,我把return改成了只声明一个变量:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多