为什么我的List <>对象上出现对象引用错误?

时间:2018-07-22 01:21:46

标签: c#

我有一个名为StartingUserInterface的类,该类具有这样写出的Teams列表:

public class StartingUserInterface
{
    public List<Team> Teams = new List<Team>();
    public static string PlayerName;
    AddPlayer();
}

在同一类中的一种方法中,我试图通过在Teams列表中找到该团队,然后设置该玩家的名称,来向该用户指定的团队添加一个用户指定的玩家名称。给那个团队:

public static void AddPlayer()
{ 
    PlayerName = Console.ReadLine();
    Team team = new Team();
    team.Name = Console.ReadLine();
    team = Teams.Find(x => x.Name == team.Name);
    team.AddPlayer(PlayerName);
}

这是Team类的摘要:

public class Team
{ 
    public string Name;

    public void AddPlayer(string name)
    {
        Player Player = new Player()
        {
            Name = name;
        };
}

我收到的错误消息说

  

“非静态字段,方法或属性'StartingUserInterface.Teams'要求对象引用

......,当我尝试将Teams列表项设置为Team对象:AddPlayer()方法中的team = Teams.Find(x => x.Name == team.Name);时。我做错了什么吗?在我看来,这是说List对象不存在,但是我在类的开头创建了一个实例。

1 个答案:

答案 0 :(得分:3)

您不能在静态方法中使用非静态字段,因此应使Teams列出一个静态变量。

  

您的

public List<Team> Teams = new List<Team>();
  

已更改

public static List<Team> Teams = new List<Team>();