c#enum中的方法
在Java中,我们可以在枚举中使用方法,例如,我可以编写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(){
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
进行任何转换)。