我试图通过在一个类中调用一个方法(FåKortNummer)来获取一个随机数但是我得到一个错误,就像在标题中说我的System.Random是一个变量但被视为一个方法我该怎么解决这个问题问题
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kortspil
{
public class Krig
{
public byte FåKortNummer()
{
System.Random KortNummer = new System.Random();
byte kort = KortNummer(1, 11);
return kort;
}
}
class Program
{
static void Main(string[] args)
{
byte kort = Krig.FåKortNummer();
Console.WriteLine(kort.ToString());
}
}
}
答案 0 :(得分:4)
当你在表达式后放一对括号时,你告诉C#编译器你想要它调用一个方法。因此“使用像''方法'”错误。
如果您希望获得随机byte
,可以这样做:
byte kort = (byte)KortNummer.Next(1, 11);
这会调用KortNummer
变量上的Next
method,生成1到11之间的数字。
答案 1 :(得分:1)
您没有正确调用Random
类方法来生成随机数。
您需要调用Random类的Next()
方法来生成随机数
来自MSDN: Random.Next()
返回指定范围内的随机整数。
此方法返回int
值,您需要将其强制转换回byte
,因为整数不能隐式转换为byte
。
试试这个:
byte kort = Convert.ToByte(KortNummer.Next(1, 11));
答案 2 :(得分:1)
您需要使用Next
方法获取Random
个数字。KortNumber
是Random
个实例的名称。您不能像这样使用它:< / p>
byte kort = (byte)KortNummer.Next(1, 11);
答案 3 :(得分:0)
你需要将它设置为静态,这样你就不必实例化Krig
类,其次,使System.Random
成为一个静态变量,这样在循环中调用方法时你每次都不会得到相同的号码。第三,您需要调用random.Next
方法。
private static System.Random KortNummer = new System.Random();
public static byte FåKortNummer()
{
byte kort = (byte)KortNummer.Next(1, 11);
return kort;
}