[译文]c#扩展方法(Extension Method In C#)
生活随笔
收集整理的這篇文章主要介紹了
[译文]c#扩展方法(Extension Method In C#)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文鏈接:
https://www.codeproject.com/Tips/709310/Extension-Method-In-Csharp
介紹
擴展方法是C# 3.0引入的新特性。擴展方法使你能夠向現有類型“添加”方法,而無需創建新的派生類型、重新編譯或以其他方式修改原始類型。 擴展方法是一種特殊的靜態方法,但可以像擴展類型上的實例方法一樣進行調用。
擴展方法的特性
以下包含了擴展方法的基本特性
示例代碼
我們針對string類型創建一個擴展方法。該擴展方法必須指定String作為一個參數,在string的實例后鍵入“.”直接調用該擴展方法。
?
在上面的?WordCount()方法里,我們傳遞了一個string類型參數,通過string類型的變量調用,換言之通過string實例調用。
現在我們創建了一個靜態類和兩個靜態方法。一個用來計算string中詞的個數。另一個方法計算string中去除空格的所有字符數。
1 using System; 2 namespace ExtensionMethodsExample 3 { 4 public static class Extension 5 { 6 public static int WordCount(this string str) 7 { 8 string[] userString = str.Split(new char[] { ' ', '.', '?' }, 9 StringSplitOptions.RemoveEmptyEntries); 10 int wordCount = userString.Length; 11 return wordCount; 12 } 13 public static int TotalCharWithoutSpace(this string str) 14 { 15 int totalCharWithoutSpace = 0; 16 string[] userString = str.Split(' '); 17 foreach (string stringValue in userString) 18 { 19 totalCharWithoutSpace += stringValue.Length; 20 } 21 return totalCharWithoutSpace; 22 } 23 } 24 } View Code現在我們創建一個可執行的程序,輸入一個string,使用擴展方法來計算所有詞數以及string中的所有字符數,結果顯示到控制臺。
1 using System; 2 namespace ExtensionMethodsExample 3 { 4 class Program 5 { 6 static void Main(string[] args) 7 { 8 string userSentance = string.Empty; 9 int totalWords = 0; 10 int totalCharWithoutSpace = 0; 11 Console.WriteLine("Enter the your sentance"); 12 userSentance = Console.ReadLine(); 13 //calling Extension Method WordCount 14 totalWords = userSentance.WordCount(); 15 Console.WriteLine("Total number of words is :"+ totalWords); 16 //calling Extension Method to count character 17 totalCharWithoutSpace = userSentance.TotalCharWithoutSpace(); 18 Console.WriteLine("Total number of character is :"+totalCharWithoutSpace); 19 Console.ReadKey(); 20 } 21 } 22 } View Code?
轉載于:https://www.cnblogs.com/wq352/p/6431357.html
總結
以上是生活随笔為你收集整理的[译文]c#扩展方法(Extension Method In C#)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jquery页面加载效果
- 下一篇: 北京有日语口译班没?