C# 如何在类中使用 get、set 和使用枚举

标签 c# class enums int boolean

我有一个使用类存储设置的程序。我需要它来使用设置和获取功能来更改和存储设置。我试过这个,但我没有让它工作。谁能帮我解决这个问题?

    private enum _Difficulty { Easy, Normal, Hard };

    public void SetDifficulty(Difficulty)
    {
        _Difficulty = Difficulty;
    }

    public enum GetDifficulty()
    {
        return _Difficulty;
    }

有没有办法在具有getset 的类中使用枚举

我还需要使用 boolint

最佳答案

这里有几处错误:

  • 您的枚举是私有(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/

相关文章:

c# - 为 View 创建或数据库存储定义选择/下拉选项的最佳实践方法是什么

c# - 如何返回包含在 1 个函数中找到的总行数的记录

c# - Noda Time : Period. Between() 返回不正确的天数?

使用 Lambda 而不是方法引用的 C# 计时器?

c++ - 尝试使用继承定义类时编译器出错

java - 在 Java 中将所有成员设置为私有(private)或公共(public)访问模式

java - 如何改进这个内部枚举代码?

reactjs - 在 React const 中使用枚举

c# - .NET 优先框架 3.5 的折线图

java - 将 String 转换为 Activity 类