前幾天有同事問到我一個簡單的功能
比如有一個枚舉類型是列出對一個問題給出的選項(例如
public enum AssessmentAnswer
{
Strongly_Disagree =
Disagree =
Neutral =
Agree =
Strongly_Agree =
}
當選擇不同的答案時
public class EnumDescription : Attribute
{
public string Text
{
get { return _text; }
} private string _text;
public EnumDescription(string text)
{
_text = text;
}
}
注意它的父類是Attribute
public static class EnumExtensions
{
public static string ToDescription(this Enum enumeration)
{
Type type = enumeration
MemberInfo[] memInfo = type
if (null != memInfo && memInfo
{
object[] attrs = memInfo[
if (null != attrs && attrs
return ((EnumDescription)attrs[
}
return enumeration
}
}
在這裡我們定義了一個擴展函數ToDescription
這個函數首先用GetType 得到了當前枚舉的類型
這個擴展函數實現後
public enum AssessmentAnswer { [EnumDescription(
[EnumDescription(
Disagree =
Neutral =
Agree =
[EnumDescription(
Strongly_Agree =
}
當要獲取描述語句時
//返回
AssessmentAnswer
注意
//返回
AssessmentAnswer
總結
擴展方法作為特殊的靜態方法使您能夠向現有類型
對於用 和 Visual Basic 編寫的客戶端代碼
給初學者的話
很多我們要用到的擴展方法都可以在網上得到
From:http://tw.wingwit.com/Article/program/net/201311/12484.html