C# Extension Methods
In C#, extension methods enable you to add methods to existing class without creating a new derived class.
Extension methods 要求:
- Define a static class to contain extension method. This class must be visible to client code.
- Implement the extension method like a static method, but add "this" modifier before the first parameter.
- The first parameter specifies the type that this extension method operates on.
1 using System.Globalization; 2 using System.Threading; 3 4 namespace Library 5 { 6 public static class StringExtensions 7 { 8 //static method 9 //public static string ConvertToTitleCase(this string source) 10 //extension method 11 public static string ConvertToTitleCase(this string source) 12 { 13 CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture; 14 TextInfo textInfo = cultureInfo.TextInfo; 15 16 return textInfo.ToTitleCase(source); 17 } 18 } 19 }
Extension methods call:
Call extension method like extension method is an instance method on the type.
1 namespace Library_Simple 2 { 3 //Import extension method namespace 4 using Library; 5 class Program 6 { 7 static void Main(String[] args) 8 { 9 string source = "the return of the king"; 10 string extected = "The Return Of The King"; 11 12 //static method 13 //string result = StringExtensions.ConvertToTitleCase(source); 14 //extension method 15 string result = source.ConvertToTitleCase(); 16 17 Assert.IsNotNull(result); 18 Assert.AreEqual(expected, result); 19 } 20 } 21 }