c#enum中的方法

c#enum中的方法,c#,enums,C#,Enums,在Java中,我们可以在枚举中使用方法,例如,我可以编写 public static void main(String []args){ System.out.println(GetNum.TWO.get()); } enum GetNum{ ONE{ public int get(){ return 1; } }, TWO{ public int get(){

在Java中,我们可以在枚举中使用方法,例如,我可以编写

 public static void main(String []args){
    System.out.println(GetNum.TWO.get());
 }

 enum GetNum{
     ONE{
         public int get(){
             return 1;
         }
     },
     TWO{
         public int get(){
             return 2;
         }
     };
     public abstract int get();
 }

也许有人会问我:在c#enums中,我可以做这样的事情吗?

不,你不能。在后台
enum
是值类型(例如,仅一个int)


例如,你可以做
inti=(int)yourEnum,反之亦然。

不,你不能。在后台
enum
是值类型(例如,仅一个int)


例如,你可以做
inti=(int)yourEnum,反之亦然。

不太可能,但您可以通过使用扩展方法进行排序

给定一个枚举,例如

enum HurfDurf
{
    Hurr,
    Durr
}
您可以创建一个扩展方法,例如

static class HurfDurfExtensions
{
    public static string Wat(this HurfDurf lol)
    {
        return lol == HurfDurf.Hurr ? "Wew lad" : "eyy boss";
    }
}
像这样使用它

var whatisthisidonteven = HurfDurf.Hurr.Wat();

不太可能,但是你可以通过使用扩展方法来实现

给定一个枚举,例如

enum HurfDurf
{
    Hurr,
    Durr
}
您可以创建一个扩展方法,例如

static class HurfDurfExtensions
{
    public static string Wat(this HurfDurf lol)
    {
        return lol == HurfDurf.Hurr ? "Wew lad" : "eyy boss";
    }
}
像这样使用它

var whatisthisidonteven = HurfDurf.Hurr.Wat();

不,枚举基本上是INTS,您可以通过类和静态只读属性实现类似的功能。但正如其他人所说,使用enum是不可能的。不,enum基本上是ints。您可以通过类和静态只读属性实现类似的功能。但正如其他人所说,枚举是不可能的。很多值类型都可以有方法。这不是不能为它们定义方法的原因。您甚至可以在
int
和任何类型(无论是否为值类型)之间进行隐式转换,因此也不是原因,也不是值类型的属性(当然也有很多值类型没有任何到
int
的转换)。很多值类型都可以有方法。这不是不能为它们定义方法的原因。您甚至可以在
int
和任何类型(无论是否为值类型)之间进行隐式转换,因此也不是原因,也不是值类型的属性(当然也有很多值类型没有与
int
进行任何转换)。