使用列舉enum來代替if else

2021-10-01 20:57:35 字數 973 閱讀 9044

在平時的**中,if/else肯定是必不可少,但是有時使用if/else卻不是**的最好選擇,下面介紹下平時會在實際工作**中使用到的用enum來代替if/else的寫法.
現在有個需求,我們公司有vip等級,1,2,3,根據等級高低,能獲取不同的優惠資訊,最簡單也最容易想到的**是:
//獲取折扣資訊

public static void main(string args)

//獲取折扣資訊

public static double getdiscount(int viplevel) else if (viplevel == 2) else if (viplevel == 3) else

}

然而問題是如果將來要多乙個vip4,那你毫無疑問,你肯定是要動這裡面的業務邏輯**,這是有風險的,而且我們知道乙個好的**應該是擁有良好的擴充套件性的,如果用列舉就可以解決這一問題.

public inte***ce vipoperation
public enum vipenum implements vipoperation 

},vip_level_2 (2)

},vip_level_3 (3)

};int viplevel = 0;

vipenum(int viplevel)

//根據vip等級獲取vip列舉

public static vipenum getinstance(int viplevel)

}return null;

}}

int viplevel = 2;//獲取會員等級

vipenum vip = vipenum.getinstance(viplevel);

vip.getdiscount();

使用ENUM來代替字串型別

這個表包含了110,000條記錄,只有10mb大小,所以可以全部放到記憶體中。service列有5個不同的值,平均字元長度為4個字元,method列有71個值,平均長度為20個字元。我們複製了該錶,把service和method列轉換為enum,如下 create table webservicec...

建議110 用類來代替enum

建議110 用類來代替enum 列舉 enum 用來表示一組固定的值。例如,為了表示星期資訊,我們可以定義列舉week enum week 列舉最大的優點在於它的型別是值型別。相比較引用型別來說,它可以在關鍵演算法中提公升效能,因為它不需要建立在 堆 中。但是,如果不考慮這方面的因素,我們不妨讓類 ...

ENUM 列舉使用總結

enum format string format public string getformat public void setformat string format enum colorspublic static void main string args 上面是列舉的兩種使用方式,我們以f...