C#特性——Description
生活随笔
收集整理的這篇文章主要介紹了
C#特性——Description
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一般來說,我們給枚舉注釋這樣。
,寫個/// <summary> 加中文注釋,然后鼠標(biāo)懸浮即可看到注釋。
但是如何用代碼獲取到這個注釋。
這就用到Description特性,原理不知道,我也剛學(xué),先學(xué)會用吧。
?
先寫個枚舉
/// <summary> /// 季節(jié) /// </summary> public enum Season {[Description("春天,又稱春季,是四季中的第一個季節(jié),指立春至立夏期間,含節(jié)氣有立春、雨水、驚蟄、春分、清明、谷雨。是萬物復(fù)蘇的季節(jié)。")]Spring = 1,[Description("夏天,四季中的第二個季節(jié),英語為summer,又稱“昊天”,是北半球一年中最熱的季節(jié),我國習(xí)慣將立夏作為夏天的開始,氣象學(xué)上的夏季要推遲到立夏后25天左右")]Summer = 2,[Description("秋天,又稱秋季,一年四季的第三季,由夏季到冬季的過渡季,北半球為9至11月,南半球為3至5月,天文為秋分到冬至。")]Autumn = 3,[Description("冬天,又稱冬季。北半球一年當(dāng)中最寒冷的季節(jié),其他的為春、夏、秋。天文學(xué)上認(rèn)為是從12月至2月,中國習(xí)慣指立冬到立春的三個月時間,也指農(nóng)歷“十、十一、十二”三個月。")]Winter = 4 }寫個擴(kuò)展方法。
擴(kuò)展方法也是一個知識點,回頭有時間我寫一下。
/// <summary> /// 枚舉拓展工具類 /// </summary> public static class EnumTools {/// <summary>/// 獲取當(dāng)前枚舉描述/// </summary>/// <param name="enumValue"></param>/// <returns></returns>public static string GetEnumDescription(this Enum enumValue){Type type = enumValue.GetType();MemberInfo[] memInfo = type.GetMember(enumValue.ToString());if (null != memInfo && memInfo.Length > 0){object[] attrs = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);if (null != attrs && attrs.Length > 0)return ((DescriptionAttribute)attrs[0]).Description;}return enumValue.ToString();} }unity新建一個腳本,調(diào)用獲取枚舉注釋的方法
public class NewBehaviourScript : MonoBehaviour {void Start(){Season season = Season.Spring;Debug.Log(season.GetEnumDescription());season = Season.Summer;Debug.Log(season.GetEnumDescription());season = Season.Autumn;Debug.Log(season.GetEnumDescription());season = Season.Winter;Debug.Log(season.GetEnumDescription());}private void Update(){} }結(jié)果顯示
?
現(xiàn)在有個疑問,既然枚舉可以用特性,并且代碼獲取到枚舉的注釋。 那么變量 方法類也應(yīng)該可以使用此特性獲取到,額回頭試試
總結(jié)
以上是生活随笔為你收集整理的C#特性——Description的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决 Win 10 ipv6无网络权限/
- 下一篇: npoi获取合并单元格_梦琪小生 C#