我在下面一行中收到此错误消息,但我不知道我做错了什么。
Scorelist.Add(entry.StatValue);
错误CS0120:非静态字段、方法或属性“”Game1.Scorelist“”需要对象引用“”
我如何解决这个问题?
public List<int> Scorelist = new List<int>();
NewClient();
public async void NewClient()
{
await DoReadLeaderboard();
}
private static async Task DoReadLeaderboard()
{
// Get Leaderboard Request
var result = await PlayFabClientAPI.GetLeaderboardAsync(new GetLeaderboardRequest()
{
// Specify your statistic name here
StatisticName = "TestScore",
// Override Player Profile View Constraints and fetch player DisplayName and AvatarUrl
ProfileConstraints = new PlayerProfileViewConstraints()
{
ShowDisplayName = true,
ShowAvatarUrl = true
}
});
if (result.Error != null)
{
// Handle error if any
Console.WriteLine(result.Error.GenerateErrorReport());
}
else
{
// Traverse the leaderboard list
foreach (var entry in result.Result.Leaderboard)
{
Scorelist.Add(entry.StatValue);
}
}
}
发布于 2019-05-24 02:42:32
您正在使用属性Scorelist
,但这不是一个静态属性,并且您没有该类的实例。你可能会认为,因为你是从成员方法中调用它,所以它是可以的,但是因为这个方法是静态的,所以它不是。您有3种解决方案:
1)将DoReadLeaderboard()
设置为非静态:
private async Task DoReadLeaderboard()
2)将Scorelist
设为静态:
public static List<int> Scorelist = new List<int>();
3)创建一个类的实例,并访问它的Scorelist
var instance = new <<ClassName>>();
instance.Scorelist.Add(entry.StatValue);
https://stackoverflow.com/questions/56281138
复制相似问题