错误1 'kortnumber '是'变量'But就像'方法'

本文关键字:But 就像 方法 变量 kortnumber 错误 | 更新日期: 2023-09-27 17:51:16

我试图通过调用一个方法(f kortnummer)在一个类中获得一个随机数,但我得到一个错误,就像在标题中说,我的系统。随机是一个变量,但被视为一个方法如何解决这个问题

  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());
            }
        }
    }

错误1 'kortnumber '是'变量'But就像'方法'

当你在表达式后面放一对括号时,你是在告诉c#编译器你希望它调用一个方法。因此出现了"used like a 'method'"的错误。

如果你想获得一个随机的byte,你可以这样做:

byte kort = (byte)KortNummer.Next(1, 11);

调用KortNummer变量上的Next方法,生成一个从1到11的数字。

您需要使用Next方法来获取Random号码。KortNumberRandom实例的名称。你不能这样用:

byte kort = (byte)KortNummer.Next(1, 11);

您没有正确调用Random类方法来生成随机数。

需要调用Random类的Next()方法生成随机数

From MSDN: Random.Next()

返回指定范围内的随机整数。

此方法返回int值,您需要将其强制转换回byte,因为整数不能隐式转换为byte

试试这个:

byte kort = Convert.ToByte(KortNummer.Next(1, 11));

您需要使其静态,这样您就不必实例化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;
}
相关文章: