我有一个使用类存储设置的程序。我需要它来使用设置和获取功能来更改和存储设置。我试过这个,但我没有让它工作。谁能帮我解决这个问题?
private enum _Difficulty { Easy, Normal, Hard };
public void SetDifficulty(Difficulty)
{
_Difficulty = Difficulty;
}
public enum GetDifficulty()
{
return _Difficulty;
}
有没有办法在具有get
和set
的类中使用枚举
?
我还需要使用 bool
和 int
。
最佳答案
这里有几处错误:
- 您的枚举是私有(private)的,但您的方法是公开的。因此,您不能让您的方法返回类型为枚举类型,或具有该类型的参数
- 您的
SetDifficulty
方法只有一个参数Difficulty
- 是参数名称还是类型? - 您的
SetDifficulty
方法正在尝试设置类型 而不是字段 - 您的
GetDifficulty
方法正在尝试使用enum
作为返回类型,然后返回一个类型 而不是一个字段
基本上,您似乎对您的enum
声明声明的内容感到困惑 - 它不是在声明一个字段,而是在声明一个类型(并指定该类型的命名值是什么)。
我怀疑你想要:
// Try not to use nested types unless there's a clear benefit.
public enum Difficulty { Easy, Normal, Hard }
public class Foo
{
// Declares a property of *type* Difficulty, and with a *name* of Difficulty
public Difficulty Difficulty { get; set; }
}
如果你真的想让你的代码看起来像 Java 而不是 C#,你可以使用 get/set 方法:
public enum Difficulty { Easy, Normal, Hard }
public class Foo
{
private Difficulty difficulty;
public void SetDifficulty(Difficulty value)
{
difficulty = value;
}
public Difficulty GetDifficulty()
{
return difficulty;
}
}
关于C# 如何在类中使用 get、set 和使用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22335103/