非静态字段需要一个对象

Dig*_*ion 1 c# enums arguments compiler-errors

这里真的没什么了不起的.我已经将代码简化为这个不会编译的小段.同样,错误是"非静态字段,方法或属性需要一个对象".

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Yuv*_*kov 5

您需要创建一个实例Scorer,因为它是一个实例方法,它在类型的实例上声明,而不是类型本身(如static方法):

var scorer = new Scorer();
int myScore = scorer.getScore(Scorer.ScoringCategory.FullHouse);
Run Code Online (Sandbox Code Playgroud)