zoukankan      html  css  js  c++  java
  • C# 与 Java 中的枚举

    C#代码: 利用扩展方法,扩展枚举功能

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Linq;
    
    namespace EnumExtension
    {
        // Define an extension method in a non-nested static class.
        public static class Extensions
        {        
            public static Grades minPassing = Grades.D;
            public static bool Passing(this Grades grade)
            {
                return grade >= minPassing;
            }
        }
    
        public enum Grades { F = 0, D=1, C=2, B=3, A=4 };
        class Program
        {       
            static void Main(string[] args)
            {
                Grades g1 = Grades.D;
                Grades g2 = Grades.F;
                Console.WriteLine("First {0} a passing grade.", g1.Passing() ? "is" : "is not");
                Console.WriteLine("Second {0} a passing grade.", g2.Passing() ? "is" : "is not");
    
                Extensions.minPassing = Grades.C;
                Console.WriteLine("
    Raising the bar!
    ");
                Console.WriteLine("First {0} a passing grade.", g1.Passing() ? "is" : "is not");
                Console.WriteLine("Second {0} a passing grade.", g2.Passing() ? "is" : "is not");
            }
        }
      }
    }
    /* Output:
        First is a passing grade.
        Second is not a passing grade.
    
        Raising the bar!
    
        First is not a passing grade.
        Second is not a passing grade.
     */

    Java代码:

    package com.mmb.csharp;
    
    /**
     * 颜色枚举
     * 
     */
    public enum Color {
    
        /**
         * 1
         */
        RED("红色", 1),
        /**
         * 2
         */
        GREEN("绿色", 2), 
        /**
         * 3
         */
        BLACK("黑色", 3), 
        /**
         * 4
         */
        YELLOW("黄色", 4);
    
        // 成员变量
        private String name;
        private int index;
    
        // 构造方法
        private Color(String name, int index) {
            this.name = name;
            this.index = index;
        }
    
        // 普通方法
        public static String getName(int index) {
            for (Color c : Color.values()) {
                if (c.getIndex() == index) {
                    return c.name;
                }
            }
            return null;
        }
        
        public static Color getColor(int index) {
            for (Color c : Color.values()) {
                if (c.getIndex() == index) {
                    return c;
                }
            }
            return null;
        }
    
        // get set 方法
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getIndex() {
            return index;
        }
    
        public void setIndex(int index) {
            this.index = index;
        }
    }

    单单只着眼于枚举,Java要比C#做的好一些、要更加地方便使用。

  • 相关阅读:
    软件工程课程总结
    团队-象棋游戏-团队一阶段互评
    课后作业-结对编程项目总结
    团队-象棋游戏-模块测试过程
    团队编程项目作业3-模块开发过程
    结对-结对编项目作业名称-最终程序
    2017-10-30 课后作业-阅读任务-阅读提问
    阅读任务-阅读提问
    2017-10-30 课后作业-阅读任务-阅读笔记-2
    2017-10-06-构建之法:现代软件工程-阅读笔记
  • 原文地址:https://www.cnblogs.com/08shiyan/p/3554519.html
Copyright © 2011-2022 走看看