相关疑难解决方法(0)

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) …
Run Code Online (Sandbox Code Playgroud)

c# java enums language-comparisons

172
推荐指数
6
解决办法
6万
查看次数

编写高度复杂的业务/数学规则的最佳方法

我必须获取一段数据,并将大量可能的变量应用于它.我真的不喜欢使用巨大的if语句集的想法,所以我在寻求简化方法的帮助,并使其更容易维护.

举个例子:

if (isSoccer)
    val = soccerBaseVal;
else if (isFootball)
    val = footballBaseVal;
.... // 20 different sports

if (isMale)
   val += 1;
else
    val += 5;

switch(dayOfWeek)
{
    case DayOfWeek.Monday:
       val += 12;
    ...
}
Run Code Online (Sandbox Code Playgroud)

等等..等等.可能在100-200种不同的测试和配方变化范围内.

这似乎是一场维护噩梦.有什么建议?

编辑:

为了进一步增加问题,许多变量仅在某些情况下使用,因此它不仅仅是具有不同值的固定逻辑集.逻辑本身必须根据条件改变,可能是从先前变量应用的条件(例如,如果val>阈值).

所以是的,我同意对许多值使用查找,但我也必须有可变逻辑.

c# math business-logic

6
推荐指数
1
解决办法
1957
查看次数

标签 统计

c# ×2

business-logic ×1

enums ×1

java ×1

language-comparisons ×1

math ×1