java enum 转 c#

来源:互联网 发布:政府工作量化指标数据 编辑:程序博客网 时间:2024/05/17 08:31

refs:

http://stackoverflow.com/questions/469287/c-sharp-vs-java-enum-for-those-new-to-c

java

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 ...]

c#


using System;using System.Collections.Generic;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            Planet pEarth = Planet.MERCURY;            double earthRadius = pEarth.Radius; // Just threw it in to show usage            double earthWeight = double.Parse("123");            double mass = earthWeight / pEarth.SurfaceGravity();            foreach (Planet p in Planet.Values)                Console.WriteLine("Your weight on {0} is {1}", p, p.SurfaceWeight(mass));            Console.ReadKey();        }    }    public class Planet    {        public static readonly Planet MERCURY = new Planet("Mercury", 3.303e+23, 2.4397e6);        public static readonly Planet VENUS = new Planet("Venus", 4.869e+24, 6.0518e6);        public static readonly Planet EARTH = new Planet("Earth", 5.976e+24, 6.37814e6);        public static readonly Planet MARS = new Planet("Mars", 6.421e+23, 3.3972e6);        public static readonly Planet JUPITER = new Planet("Jupiter", 1.9e+27, 7.1492e7);        public static readonly Planet SATURN = new Planet("Saturn", 5.688e+26, 6.0268e7);        public static readonly Planet URANUS = new Planet("Uranus", 8.686e+25, 2.5559e7);        public static readonly Planet NEPTUNE = new Planet("Neptune", 1.024e+26, 2.4746e7);        public static readonly Planet PLUTO = new Planet("Pluto", 1.27e+22, 1.137e6);        public static IEnumerable<Planet> Values        {            get            {                yield return MERCURY;                yield return VENUS;                yield return EARTH;                yield return MARS;                yield return JUPITER;                yield return SATURN;                yield return URANUS;                yield return NEPTUNE;                yield return PLUTO;            }        }        private readonly string name;        private readonly double mass;   // in kilograms        private readonly double radius; // in meters        Planet(string name, double mass, double radius)        {            this.name = name;            this.mass = mass;            this.radius = radius;        }        public string Name { get { return name; } }        public double Mass { get { return mass; } }        public double Radius { get { return radius; } }        // universal gravitational constant  (m3 kg-1 s-2)        public const double G = 6.67300E-11;        public double SurfaceGravity()        {            return G * mass / (radius * radius);        }        public double SurfaceWeight(double otherMass)        {            return otherMass * SurfaceGravity();        }        public override string ToString()        {            return name;        }    }}




0 0
原创粉丝点击