C# 非静态字段需要一个对象

C# 非静态字段需要一个对象,c#,enums,compiler-errors,arguments,C#,Enums,Compiler Errors,Arguments,这里真的没什么进展。我已经将代码简化为这段无法编译的代码。同样,错误是非静态字段、方法或属性需要对象 public class Scorer { public enum ScoringCategory {FullHouse} public int getScore(ScoringCategory category) { return 1; } } [TestClass] public class ScoringTests { [

这里真的没什么进展。我已经将代码简化为这段无法编译的代码。同样,错误是非静态字段、方法或属性需要对象

public class Scorer
{   
    public enum ScoringCategory {FullHouse}

    public int getScore(ScoringCategory category)
    {
        return 1; 
    }
}

[TestClass]
public class ScoringTests
{
    [TestMethod]
    public void TestFullHouse()
    {                                    
        // Here is where I get the error
        int myScore = Scorer.getScore(Scorer.ScoringCategory.FullHouse);
    }
}

您需要创建Scorer的实例,因为它是一个实例方法,在类型的实例上声明,而不是像静态方法那样在类型本身上声明:


您需要创建Scorer的实例,因为它是一个实例方法,在类型的实例上声明,而不是像静态方法那样在类型本身上声明:


您的方法getScore是类Scorer的一个实例方法。您需要先创建Scorer类型的对象,然后才能使用该方法

这将有助于:

public class Scorer
{   
    public enum ScoringCategory {FullHouse}

    public int getScore(ScoringCategory category)
    {
        return 1; 
    }
}

[TestClass]
public class ScoringTests
{
    [TestMethod]
    public void TestFullHouse()
    {                 
        // create an instance                   
        var scorerInstance = new Scorer();
        // call instance method getScore
        int myScore = scorerInstance.getScore(Scorer.ScoringCategory.FullHouse);
    }
}

您的方法getScore是类Scorer的一个实例方法。您需要先创建Scorer类型的对象,然后才能使用该方法

这将有助于:

public class Scorer
{   
    public enum ScoringCategory {FullHouse}

    public int getScore(ScoringCategory category)
    {
        return 1; 
    }
}

[TestClass]
public class ScoringTests
{
    [TestMethod]
    public void TestFullHouse()
    {                 
        // create an instance                   
        var scorerInstance = new Scorer();
        // call instance method getScore
        int myScore = scorerInstance.getScore(Scorer.ScoringCategory.FullHouse);
    }
}

我将从封装类中删除枚举,并将其设置为静态,以便您可以在尝试执行以下操作时使用它:

public static enum ScoringCategory {FullHouse}    
public class Scorer
{
    public int getScore(ScoringCategory category)
    {
        return 1; 
    }
}

我将从封装类中删除枚举,并将其设置为静态,以便您可以在尝试执行以下操作时使用它:

public static enum ScoringCategory {FullHouse}    
public class Scorer
{
    public int getScore(ScoringCategory category)
    {
        return 1; 
    }
}

记分员记分员=新记分员;int myScore=scorer.getScoreScorer.ScoringCategory.FullHouse;或添加静态:public static int getScoreScoreScoringCategory类别您的类记分器不是静态的。记分器记分器=新记分器;int myScore=scorer.getScoreScorer.ScoringCategory.FullHouse;或者添加静态:public static int getScoreScoreScoringCategory类别您的类记分器不是静态的。谢谢!我正在做C++的转换,谢谢!我正在从C++中进行转换。