C# 非静态字段方法需要对象方法

C# 非静态字段方法需要对象方法,c#,object,methods,static,required,C#,Object,Methods,Static,Required,我没有使用C#的经验,但作为我们大学模块的一部分,我们必须创建一个老虎机应用程序。我们创建了一个Gambler类,我必须创建一个CheckBalance类,在这个类中我将从Gambler类调用Token方法。但是我得到了线程标题中提到的错误 Int tokens = Gambler.Tokens; 上面这一行就是我得到错误的地方。 这是我的代码: enter code herenamespace CasinoClasslibrary { public class Gambler { p

我没有使用C#的经验,但作为我们大学模块的一部分,我们必须创建一个老虎机应用程序。我们创建了一个Gambler类,我必须创建一个CheckBalance类,在这个类中我将从Gambler类调用Token方法。但是我得到了线程标题中提到的错误

Int tokens = Gambler.Tokens;
上面这一行就是我得到错误的地方。 这是我的代码:

enter code herenamespace CasinoClasslibrary
{
public class Gambler
{
    public string Name { get; private set; }

    public int Age { get; private set; }

    public long CreditCardNum { get; private set; }

    public int Tokens { get; public set; }

    public string Username { get; private set; }

    public string  Password { private get; public set; }

    public Gambler(string Name, int Age, long CreditCardNum, int Tokens, string Username,  string   Password)
    {
        this.Name = Name;
        this.Age = Age;
        this.CreditCardNum = CreditCardNum;
        this.Tokens = Tokens;
        this.Username = Username;
        this.Password = Password;
    }
}

public class Cashout : Gambler
{
    public Boolean CheckBalance()
    {

        int tokens = Gambler.Tokens;
        return true;
    }
}

}

由于您是从
赌徒继承的,我怀疑您需要访问base。令牌如下:

public Boolean CheckBalance()
{
    int tokens = base.Tokens; //here
    return true;
}
否则,由于
Toakens
是实例成员,您必须创建
Gambler
的对象,然后访问它

代码中还有其他错误。您尚未在基类中定义默认(无参数)构造函数,需要在子类中调用现有的基类构造函数

public class Cashout : Gambler
{
    public Cashout()
        : base("",0, 0, 1, "", "") //something like this
    {
    }
    public Boolean CheckBalance()
    {
        int tokens = base.Tokens;
        return true;
    }
}

由于您是从赌徒继承的,我怀疑您需要访问base。令牌如下:

public Boolean CheckBalance()
{
    int tokens = base.Tokens; //here
    return true;
}
否则,由于
Toakens
是实例成员,您必须创建
Gambler
的对象,然后访问它

代码中还有其他错误。您尚未在基类中定义默认(无参数)构造函数,需要在子类中调用现有的基类构造函数

public class Cashout : Gambler
{
    public Cashout()
        : base("",0, 0, 1, "", "") //something like this
    {
    }
    public Boolean CheckBalance()
    {
        int tokens = base.Tokens;
        return true;
    }
}

由于您是从赌徒继承的,我怀疑您需要访问base。令牌如下:

public Boolean CheckBalance()
{
    int tokens = base.Tokens; //here
    return true;
}
否则,由于
Toakens
是实例成员,您必须创建
Gambler
的对象,然后访问它

代码中还有其他错误。您尚未在基类中定义默认(无参数)构造函数,需要在子类中调用现有的基类构造函数

public class Cashout : Gambler
{
    public Cashout()
        : base("",0, 0, 1, "", "") //something like this
    {
    }
    public Boolean CheckBalance()
    {
        int tokens = base.Tokens;
        return true;
    }
}

由于您是从赌徒继承的,我怀疑您需要访问base。令牌如下:

public Boolean CheckBalance()
{
    int tokens = base.Tokens; //here
    return true;
}
否则,由于
Toakens
是实例成员,您必须创建
Gambler
的对象,然后访问它

代码中还有其他错误。您尚未在基类中定义默认(无参数)构造函数,需要在子类中调用现有的基类构造函数

public class Cashout : Gambler
{
    public Cashout()
        : base("",0, 0, 1, "", "") //something like this
    {
    }
    public Boolean CheckBalance()
    {
        int tokens = base.Tokens;
        return true;
    }
}

因为兑现是从赌徒那里继承的,所以你们可以这么做。这是因为
Cashout
实例也将具有
Tokens
属性

public class Cashout : Gambler
{    
  public Boolean CheckBalance()
  {

    int tokens = Tokens;
    return true;
  }
}
但是,如果您希望该方法是静态的,则需要使用
Gambler
的实例来访问该属性,并且应该将其传递到静态方法中

public class Cashout : Gambler
{    
  public static Boolean CheckBalance(Gambler myGambler)
  {

    int tokens = myGambler.Tokens;
    return true;
  }
}
最后,如果您想让这个
令牌
属性本身是静态的,那么需要将其声明为静态的

public static int Tokens;

您可能还需要一个静态构造函数来设置它。

因为Cashout继承自Gambler,所以您可以这样做。这是因为
Cashout
实例也将具有
Tokens
属性

public class Cashout : Gambler
{    
  public Boolean CheckBalance()
  {

    int tokens = Tokens;
    return true;
  }
}
但是,如果您希望该方法是静态的,则需要使用
Gambler
的实例来访问该属性,并且应该将其传递到静态方法中

public class Cashout : Gambler
{    
  public static Boolean CheckBalance(Gambler myGambler)
  {

    int tokens = myGambler.Tokens;
    return true;
  }
}
最后,如果您想让这个
令牌
属性本身是静态的,那么需要将其声明为静态的

public static int Tokens;

您可能还需要一个静态构造函数来设置它。

因为Cashout继承自Gambler,所以您可以这样做。这是因为
Cashout
实例也将具有
Tokens
属性

public class Cashout : Gambler
{    
  public Boolean CheckBalance()
  {

    int tokens = Tokens;
    return true;
  }
}
但是,如果您希望该方法是静态的,则需要使用
Gambler
的实例来访问该属性,并且应该将其传递到静态方法中

public class Cashout : Gambler
{    
  public static Boolean CheckBalance(Gambler myGambler)
  {

    int tokens = myGambler.Tokens;
    return true;
  }
}
最后,如果您想让这个
令牌
属性本身是静态的,那么需要将其声明为静态的

public static int Tokens;

您可能还需要一个静态构造函数来设置它。

因为Cashout继承自Gambler,所以您可以这样做。这是因为
Cashout
实例也将具有
Tokens
属性

public class Cashout : Gambler
{    
  public Boolean CheckBalance()
  {

    int tokens = Tokens;
    return true;
  }
}
但是,如果您希望该方法是静态的,则需要使用
Gambler
的实例来访问该属性,并且应该将其传递到静态方法中

public class Cashout : Gambler
{    
  public static Boolean CheckBalance(Gambler myGambler)
  {

    int tokens = myGambler.Tokens;
    return true;
  }
}
最后,如果您想让这个
令牌
属性本身是静态的,那么需要将其声明为静态的

public static int Tokens;

您可能还需要一个静态构造函数来设置它。

Tokens
不是静态方法,但您尝试通过静态构造函数(类级别)访问它

可以通过声明它为静态来实现这一点(尽管这可能不是您想要的)

或者通过实例化赌徒

new Gambler().Tokens;

Tokens
不是静态方法,但您尝试通过静态构造(类级别)访问它

可以通过声明它为静态来实现这一点(尽管这可能不是您想要的)

或者通过实例化赌徒

new Gambler().Tokens;

Tokens
不是静态方法,但您尝试通过静态构造(类级别)访问它

可以通过声明它为静态来实现这一点(尽管这可能不是您想要的)

或者通过实例化赌徒

new Gambler().Tokens;

Tokens
不是静态方法,但您尝试通过静态构造(类级别)访问它

可以通过声明它为静态来实现这一点(尽管这可能不是您想要的)

或者通过实例化赌徒

new Gambler().Tokens;