扩展方法能够向现有类型“添加”方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型。扩展方法必须是静态方法,可以像实例方法一样进行调用。且调用同名中实际定义的方法优先级要高于扩展方法。

这里我定义了一个测试类,IsValidEmailAddress方法作为string类型的扩展方法。当中第一个参数前面出现一个this,这表示对string中添加扩展方法

 1  public static class TestOne
 2     {
 3         public static bool IsValidEmailAddress(this string s)
 4         {
 5 
 6             Regex regex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
 7 
 8             return regex.IsMatch(s);
 9 
10         }
11      
12     }

在调用时,不需要传参数,直接在在类型为string 的字符串点击就可以出现方法调用

1  string a = string.Empty;
2             bool ty=  a.IsValidEmailAddress();

在我们实际应用中也很广泛,举个我们常用的例子:linq标准查询,或者找到Queryable类

posted on 2018-07-12 17:30  高兴happy  阅读(127)  评论(0编辑  收藏  举报