错误1 'kortnumber '是'变量'But就像'方法'
本文关键字:But 就像 方法 变量 kortnumber 错误 | 更新日期: 2023-09-27 17:51:16
我试图通过调用一个方法(f
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());
}
}
}
当你在表达式后面放一对括号时,你是在告诉c#编译器你希望它调用一个方法。因此出现了"used like a 'method'"的错误。
如果你想获得一个随机的byte
,你可以这样做:
byte kort = (byte)KortNummer.Next(1, 11);
调用KortNummer
变量上的Next
方法,生成一个从1到11的数字。
您需要使用Next
方法来获取Random
号码。KortNumber
是Random
实例的名称。你不能这样用:
byte kort = (byte)KortNummer.Next(1, 11);
您没有正确调用Random
类方法来生成随机数。
需要调用Random类的Next()
方法生成随机数
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;
}