मैं थोड़ी देर के लिए जावा में प्रोग्रामिंग कर रहा हूं और बस एक परियोजना पर फेंक दिया गया है जो पूरी तरह से सी # में लिखा गया है। मैं C # में गति करने के लिए आने की कोशिश कर रहा हूं, और अपने नए प्रोजेक्ट में कई जगहों पर इस्तेमाल किए गए एनमों को देखा है, लेकिन पहली नज़र में, सी # की एनम जावा 1.5+ कार्यान्वयन की तुलना में अधिक सरल लगती हैं। क्या कोई C # और Java इनम के बीच के अंतर को दूर कर सकता है, और कैसे मतभेदों को दूर कर सकता है? (मैं एक भाषा ज्योति युद्ध शुरू नहीं करना चाहता, मैं सिर्फ यह जानना चाहता हूं कि C # में कुछ चीजें कैसे करें जो मैं जावा में करता था)। उदाहरण के लिए, क्या कोई सूर्य के प्रसिद्ध ग्रह एनम उदाहरण के लिए C # समकक्ष पोस्ट कर सकता है?
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 175
Your weight on MERCURY is 66.107583
Your weight on VENUS is 158.374842
[etc ...]