This article mainly introduces C# extension methods, and analyzes the functions, usage methods and related precautions of C# extension methods in the form of examples. Friends in need can refer to this article
The example describes C# extension methods. Sharing it with everyone for your reference, the details are as follows:Extension methods
Extension methods enable you to "add" methods to existing types, Without creating a new derived type, recompiling, or otherwise modifying the original type. An extension method is a special kind of static method, but can be called like an instance method on an extension type. For client code written in C# and Visual Basic, there is no significant difference between calling an extension method and calling the method actually defined in the type. If we have such a requirement, convert the first character of aWithout extension methods:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ExtraMethod { //抽象出静态StringHelper类 public static class StringHelper { //抽象出来的将字符串第一个字符大写,从第一个到第len个小写,其他的不变的方法 public static string ToPascal(string s,int len) { return s.Substring(0, 1).ToUpper() + s.Substring(1, len).ToLower() + s.Substring(len + 1); } } class Program { static void Main(string[] args) { string s1 = "aSDdAdfGDFSf"; string s2 = "sbfSDffsjG"; Console.WriteLine(StringHelper.ToPascal(s1,3)); Console.WriteLine(StringHelper.ToPascal(s2, 5)); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ExtraMethod { class Program { static void Main(string[] args) { string s1 = "aSDdAdfGDFSf"; string s2 = "sbfSDffsjG"; Console.WriteLine(s1.ToPascal(3)); Console.WriteLine(s2.ToPascal(5)); } } //扩展类,只要是静态就可以 public static class ExtraClass { //扩展方法--特殊的静态方法--为string类型添加特殊的方法ToPascal public static string ToPascal(this string s, int len) { return s.Substring(0, 1).ToUpper() + s.Substring(1, len).ToLower() + s.Substring(len + 1); } } }
Comparison of the above two methods:
1. The code is more convenient when accessing static methods like ToPascal. It acts as if the extended type actually had the instance method. 2. The extension method does not change the code of the extended class, and there is no need to recompile, modify, or derive the extended class
Define the extension method
1. Define a static class to contain extension methods. 2. This class must be visible to client code.
3. Implement the extension method as a static method and give it at least the same visibility as the containing class.
4. The first parameter of the method specifies the type operated by the method; the parameter must start with the this modifier.
operator being applied, and the compiler already knows the type of object . You only need to provide actual parameters for these two formal parameters via n.
Notes:
1. The extension method must be defined in the static class 2. The
priority of the extension method Lower than class methods with the same name 3. Extension methods are only valid within a specific
namespace 4. Do not abuse extension methods unless necessary
The above is the detailed content of Example analysis of extension methods in C#. For more information, please follow other related articles on the PHP Chinese website!