use*_*591 12 c# int enums boolean class
我有一个程序,我使用类存储设置.我需要它来使用set和get函数来更改和存储设置.我试过这个,但我没有让它发挥作用.任何人都可以帮我这个吗?
private enum _Difficulty { Easy, Normal, Hard };
public void SetDifficulty(Difficulty)
{
_Difficulty = Difficulty;
}
public enum GetDifficulty()
{
return _Difficulty;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法enums在课堂上使用get和set?
我也需要这个bool和int.
Jon*_*eet 35
这里有几个问题:
SetDifficulty方法有一个参数just 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; }
}
Run Code Online (Sandbox Code Playgroud)
如果你真的想让你的代码看起来像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;
}
}
Run Code Online (Sandbox Code Playgroud)
一旦使用关键字指定枚举enum,该枚举就充当类型,就像 aclass或struct一样。
以下是使用自定义枚举实现属性的方法:
public enum _Difficulty { Easy, Normal, Hard };
public _Difficulty Difficulty { get; set; }
Run Code Online (Sandbox Code Playgroud)
您的代码尝试分配Difficulty一个值,而实际上Difficulty是enum类型的名称。我鼓励使用 getter 和 setter 作为属性:
public enum Difficulty { Easy, Normal, Hard };
private Difficulty _difficulty;
public Difficulty CurrentDifficulty
{
get { return _difficulty; }
set { _difficulty = value; }
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以在 setter 中为特殊条件添加额外的代码。要使用它,您只需执行以下操作:
//set
CurrentDifficulty = Difficulty.Easy;
//get
Difficulty theDifficulty = CurrentDifficulty;
Run Code Online (Sandbox Code Playgroud)