C#擴充方法 入門小例
擴充方法的定義:
l 必須是靜態類,靜態方法
l 第一個參數帶有關鍵字”this”,表示把這個方法賦給哪個類型
代碼說明:這裡的例子是寫了一個靜態類,myExtension,一個擴充方法Add,表示所有的INT類型的數字都將具有調用這個Add方法的能力,條件是引入MyExtension的命名空間。
下面讓我們看一下用法:
代碼說明:這段代碼做的事是聲明了一個int類型的數字並賦值為7,然後調用Add方法的時候你將看到智能感知如下:
可以看到擴充方法用了向下方向的箭頭標記。然後調用就可以了,給它任意個int,由於我用了params關鍵字,將自動解析為int數組,之後用rlt變數進行接收,顯示出來就會看到結果:
樣本2:
寫了一個擴充string的方法,可以把英文標準化,例如 hEllo WORld 傳遞進去 將會輸出,Hello World
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace wpfLab1{ public static class StrExtensenClass { public static string GetNormalFormat(this string s) { s = RemoveExtraSpace(s); string[] words = s.Split(' '); string ret = ""; foreach (var word in words) { ret += StrFstChrUpr(word) + " "; } return ret; } public static string RemoveExtraSpace(this string s) { if (s == null || s.Length <= 1) { return s; } bool lastChrIsSpace = false; string ret = ""; foreach (var chr in s) { if (chr == ' ') { if (lastChrIsSpace) { continue; } else { lastChrIsSpace = true; ret += chr; } } else { ret += chr; lastChrIsSpace = false; } } return ret; } private static string StrFstChrUpr(string s) { if (s == null || s.Length < 1) { return s; } string lowerStr = s.ToLower().Remove(0, 1); string upperStr = Char.ToUpper(s[0]).ToString(); return (upperStr + lowerStr); } }}
使用:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using wpfLab1;namespace wpfLab1{ /// <summary> /// MainWindow.xaml 的互動邏輯 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void btnHello_Click(object sender, RoutedEventArgs e) { string s = "hEllo wOrLd, hi, world , aa dd dw WWdd a "; lblHello.Content = s.GetNormalFormat(); } }}
以上就是c# 擴充方法 入門小例的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!