上篇說道擴充套件方法的簡單介紹,這裡就說繼續上篇說下使用方法。
擴充套件方法能夠幫助我們向現有型別中加入方法
.來符合我們的須要。
比如我們能夠用擴充套件方法向
string
類中加入乙個isvalidemailaddress方法
,用於檢測是否符合
email標準.
擴充套件方法規定類必須是靜態的
.裡面包括的全部方法必須都是靜態的
,(注意
:不能定義擴充套件屬性和事件
)。且第乙個引數指定方法作用的型別,用
this
修做字首.
比如
public static classmyextensions
,stringsplitoptions.removeemptyentries).length;}}
該方法的引數用
this
,表示自身改動的為
this型別,
擴充套件方法被定義為靜態方法
,可是通過例項才幹呼叫
,並且引數以
this
改動為字首
.並且是在編譯時繫結的
.在使用前首先引入命名空間
,然後例項化物件就能夠呼叫了。
3使用例項
string
類的方法不少
,可是有些用的不是非常習慣
.這裡寫了乙個字元為空的異常提示類
.多用於傳遞查收的校驗
首選定義靜態類
.在定義靜態方法
using system;
usingsystem.collections.generic;
using system.linq;
using system.web;
usingsystem.diagnostics;
usingsystem.reflection;
using system.io;
namespace configurationsectiontest1
////// 檢查物件是否為空。假設為空,丟擲argumentnullexception
////// 被檢查的物件
/// 引數的名稱
[debuggernonusercode]
publicstatic void nullcheck(this object data, string message)
////// 假設條件表示式boolexpression的結果值為真(true)。則丟擲strmessage指定的錯誤資訊
////// 條件表示式
/// 錯誤資訊
/// 錯誤資訊的引數
/// 異常的型別
////// 假設條件表示式boolexpression的結果值為真(true),則丟擲message指定的錯誤資訊
[debuggernonusercode]
publicstatic void truethrow(this bool parseexpressionresult, string message,params object messageparams) where t : system.exception}}}
對於調使用方法方
,經常使用在方法的
引數檢測上
pubilc void test(string id)
圖例例項化的
id能夠直接呼叫該方法,進行推斷,為空,則丟擲我們寫好的提示。如圖
以上是對
string
型別的擴充套件。當然了其它的型別也是能夠擴充套件的,創造符合自己的須要的方法。由擴充套件方法聯想我們的靜態方法。靜態方式並不針對某一型別。可是擴充套件方法卻是這對某一型別的擴充套件,沒有繼承。
這是他們的不同點。
string擴充套件方法使用
建立乙個 static 的類,並且裡面的方法也必須是static的,第乙個引數是被擴充套件的物件,必須標註為this,使用時,必須保證namespace using進來了.下面為例項 using system using system.collections.generic using system...
擴充套件方法的使用
前言 打算分三個層面來介紹這個知識點,分別是 net內建物件的擴充套件方法 一般物件的擴充套件方法 泛型物件的擴充套件方法。什麼是擴充套件方法?回答這個問題之前,先看看我們一般情況下方法的呼叫。類似這樣的通用方法你一定寫過 static void main string args 將字串轉換為日期 ...
使用擴充套件方法來擴充套件介面
不清楚擴充套件方法的清先預熱下 推薦 摘抄 1 擴充套件方法跟原來類的方法重名時候的處理邏輯 2 擴充套件方法的巢狀 現在我們來看擴充套件方法使用的第三個場景 使用擴充套件方法來擴充套件介面 應用場景舉例 我們有時候會發現最初定義的乙個介面,在現在環境下,這個介面需要再增加乙個函式。有了擴充套件方法...