标签:style class blog code ext color
判断一个字符串是否是正确的Email地址:IsEmail.在string的类型定义时添加这个方法不也行吗?正式因为微软没有提供这个方法,咱们才需要给它“增加”IsEmail“方法。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 扩展方法 8 { 9 static class StringHelper 10 { 11 //什么样的类声明为static方法 12 //就是没有用到任何的(非static)字段、属性 13 //第一个参数前加this,第一个参数类型为待扩展的类型 14 public static bool IsEmail(this string s) 15 { 16 return s.Contains(‘@‘); 17 } 18 /// <summary> 19 /// TryParse这个方法会返回一个布尔值,来表示解析是否成功,那么就可以免去添加异常处理代码的麻烦。 20 /// </summary> 21 /// <param name="s"></param> 22 /// <returns></returns> 23 public static bool IsNumber(this string s) 24 { 25 int i; 26 return Int32.TryParse(s, out i); 27 } 28 public static string ToHanZi(this bool b) 29 { 30 return b ? "真" : "假"; 31 } 32 public static string Quoted(this string s) 33 { 34 return "[" + s + "]"; 35 } 36 //和上面方法构成重载, 37 public static string Quoted(this string s, string q1, string q2) 38 { 39 return q1 + s + q2; 40 } 41 } 42 }
应用扩展方法:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 扩展方法 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 string s = "a@b.com"; 14 Console.WriteLine(s.IsEmail().ToHanZi()); 15 16 //不能这么使用,IsEmail()是为string类进行扩展的方法 17 //s.IsNumber()的返回值是Bool类型,他没有IsEmail()方法 18 //Console.WriteLine(s.IsNumber().IsEmail()); 19 20 //如果扩展方法的命名空间与项目不一样,必须using扩展类的namespace 21 if (s.IsEmail()) 22 { 23 24 } 25 26 Console.ReadKey(); 27 } 28 } 29 }
标签:style class blog code ext color
原文地址:http://www.cnblogs.com/skyl/p/3787872.html