错误1'KortNummer'是'变量',但用作'方法'

时间:2014-03-22 15:00:33

标签: c# random console-application

我试图通过在一个类中调用一个方法(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());
            }
        }
    }

4 个答案:

答案 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个数字。KortNumberRandom个实例的名称。您不能像这样使用它:< / 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;
}