0
我已经搜索并找到很多示例,但仍然需要专家的帮助。 低于在Java代码:如何在C#中转换java枚举#
public class myClass {
public static enum myEnum {
P("aco", 1000, 4, 8), L("acs", 2100,
1, 9), S("acn", 3500, 1, 6), H("ach", 5400, 1, 6);
final public String cc;
final int bt;
final int Qp;
final int lp;
private myEnum(String cc, int bt, int Qp, int lp) {
this.cc = cc;
this.bt = bt;
this.Qp = Qp;
this.lp = lp;
}
};}
我试图将其转换像下面通过看实例:
using System.Reflection;
using System;
[System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
public class EnumAttr : System.Attribute
{
public EnumAttr()
{
}
}
public static class EnumExtension
{
public static EnumAttr GetAttr(this Enum value)
{
Type type = value.GetType();
FieldInfo fieldInfo = type.GetField(value.ToString());
var atts = (EnumAttr[])fieldInfo.GetCustomAttributes(typeof(EnumAttr), false);
return atts.Length > 0 ? atts[0] : null;
}
}
public class myEnumAttr : EnumAttr
{
public string Desc { get; set; }
}
public class myClass
{
public enum myEnum
{
[myEnumAttr("aco", 1000, 4, 8)]P,
[myEnumAttr("acs", 2100, 1, 9)]L,
[myEnumAttr("acn", 3500, 1, 6)]S,
[myEnumAttr("ach", 5400, 1, 6)]H,
public String cc;
int bt;
int Qp;
int lp;
private void myEnum(String cc, int bt, int Qp, int lp) {
this.cc = cc;
this.bt = bt;
this.Qp = Qp;
this.lp = lp;
}
};}
上面的代码是不正确的,因为每个编译器,但我知道如何使它工作。请帮忙。谢谢。
谢谢。我了解解决方法。 –