最近加班好累a...題外話哈 枚舉不用多說,介紹下擴展方法:擴展方法使你能夠向現有類型“添加”方法,而無需創建新的派生類型、重新編譯或以其他方式修改原始類型。 擴展方法是一種特殊的靜態方法,但可以像擴展類型上的實例方法一樣進行調用。[當然是從msdn拷貝的咯,詳情請見~] 擴展方法需定義在靜態類中, ...
最近加班好累a...題外話哈
枚舉不用多說,介紹下擴展方法:擴展方法使你能夠向現有類型“添加”方法,而無需創建新的派生類型、重新編譯或以其他方式修改原始類型。 擴展方法是一種特殊的靜態方法,但可以像擴展類型上的實例方法一樣進行調用。[當然是從msdn拷貝的咯,詳情請見~]
擴展方法需定義在靜態類中,並且方法本身也應聲明為靜態的,第一個參數指定該方法作用於哪個類型,並且該參數以 this 修飾符為首碼。註意,與介面或類方法具有相同名稱和簽名的擴展方法永遠不會被調用。
舉個慄子:
1 public enum EnumWeekday 2 {
None, // 不好意思,強行植入None,記住它會有用的
3 Monday, 4 5 TuesDay, 6 7 星期三, // Unicode就是這麼自信 8 9 Thursday, 10 11 Friday, 12 } 13 14 // 第二個方法不是擴展方法,一般只將擴展方法放在一個類中 15 // 當然可以將其聲明為擴展方法,但不建議 16 static class ExternFunc 17 { 18 /// <summary> 19 /// EnumWeekday枚舉的擴展方法 20 /// </summary> 21 public static string ToChinese(this EnumWeekday day) 22 { 23 switch (day) 24 { 25 case EnumWeekday.Monday: 26 return "星期一"; 27 28 case EnumWeekday.TuesDay: 29 return "星期二"; 30 31 default: 32 return day.ToString(); 33 } 34 } 35 36 /// <summary> 37 /// 字元串轉枚舉 38 /// </summary> 39 public static EnumWeekday String2EnumWeekday(string day) 40 { 41 switch (day) 42 { 43 case "星期一": 44 return EnumWeekday.Monday; 45 46 default: 47 return EnumWeekday.Friday; // 皮一下,反正周末還不是要加班-_- 48 } 49 } 50 }
上面已介紹,像實例方法一樣調用擴展方法就歐克了--EnumWeekday friday = EnumWeekday.Friday; Debug.WriteLine("今天是{0}", friday.ToChinese());