VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之有关枚举和扩展方法

最近加班好累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());

--I love this guy.

相关教程