为了账号安全,请及时绑定邮箱和手机立即绑定

C#vs Java Enum(适用于C#的新手)

C#vs Java Enum(适用于C#的新手)

回首忆惘然 2019-08-15 14:23:05
C#vs Java Enum(适用于C#的新手)我已经用Java编程了一段时间,只是投入了一个完全用C#编写的项目。我正试图加快C#的速度,并注意到在我的新项目中几个地方使用的枚举,但乍一看,C#的枚举似乎比Java 1.5+实现更简单。任何人都可以枚举C#和Java枚举之间的差异,以及如何克服这些差异?(我不想开始语言火焰战,我只想知道如何在C#中做一些我以前用Java做的事情)。例如,有人可以发布一个C#对应的Sun着名的Planet枚举示例吗?public enum Planet {   MERCURY (3.303e+23, 2.4397e6),   VENUS   (4.869e+24, 6.0518e6),   EARTH   (5.976e+24, 6.37814e6),   MARS    (6.421e+23, 3.3972e6),   JUPITER (1.9e+27,   7.1492e7),   SATURN  (5.688e+26, 6.0268e7),   URANUS  (8.686e+25, 2.5559e7),   NEPTUNE (1.024e+26, 2.4746e7),   PLUTO   (1.27e+22,  1.137e6);   private final double mass;   // in kilograms   private final double radius; // in meters   Planet(double mass, double radius) {       this.mass = mass;       this.radius = radius;   }   public double mass()   { return mass; }   public double radius() { return radius; }   // universal gravitational constant  (m3 kg-1 s-2)   public static final double G = 6.67300E-11;   public double surfaceGravity() {       return G * mass / (radius * radius);   }   public double surfaceWeight(double otherMass) {       return otherMass * surfaceGravity();   }}// Example usage (slight modification of Sun's example):public static void main(String[] args) {     Planet pEarth = Planet.EARTH;     double earthRadius = pEarth.radius(); // Just threw it in to show usage     // Argument passed in is earth Weight.  Calculate weight on each planet:     double earthWeight = Double.parseDouble(args[0]);     double mass = earthWeight/pEarth.surfaceGravity();     for (Planet p : Planet.values())        System.out.printf("Your weight on %s is %f%n",                          p, p.surfaceWeight(mass));}// Example output:$ java Planet 175Your weight on MERCURY is 66.107583Your weight on VENUS is 158.374842[etc ...]
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

在C#中,属性可以与枚举一起使用。这里有详细描述的编程模式的好例子(Codeproject)

public enum Planet{
   [PlanetAttr(3.303e+23, 2.4397e6)]
   Mercury,
   [PlanetAttr(4.869e+24, 6.0518e6)]
   Venus}



查看完整回答
反对 回复 2019-08-15
  • 3 回答
  • 0 关注
  • 852 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信