这里真的没什么了不起的。我已经将代码简化为这个不会编译的小段。同样,错误是"非静态字段,方法或属性需要一个对象。"
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);
}
}
答案 0 :(得分:5)
您需要创建Scorer
的实例,因为它是实例方法,它是在类型的实例上声明的,而不是类型本身(如{{1}方法):
static
答案 1 :(得分:0)
您的方法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);
}
}
答案 2 :(得分:0)
我会从封装类中删除枚举并将其设置为静态,以便您可以在尝试时使用它:
public static enum ScoringCategory {FullHouse}
public class Scorer
{
public int getScore(ScoringCategory category)
{
return 1;
}
}