Util應用程式框架公共操作類 六 驗證擴充套件

2021-09-06 20:24:27 字數 2250 閱讀 9264

前面介紹了倉儲的基本操作,下面準備開始擴充套件查詢,在擴充套件查詢之前,首先要增加兩個公共操作類,乙個是經常要用到的驗證方法,另乙個是lambda表示式的操作類。

很多時候,我們會判斷乙個物件是否為null,由於null是乙個不能接受的值,它會導致「未將物件引用設定到物件的例項」的嚴重錯誤,所以當檢測到null值時一般直接丟擲argumentnullexception異常。

public

void test( string

name )

由於判斷null是乙個頻繁操作,可以用乙個擴充套件方法來封裝它,像下面這樣呼叫。

public

void test( string

name )

我直接將checknull擴充套件到object物件上,因為絕大部分物件都需要這個操作。注意,擴充套件object要非常謹慎,會導致大面積汙染,因為所有物件都會看見這個擴充套件方法,如果這個操作對某些物件有***,就會造成更多混亂。

另乙個常用的方法也是判斷是否為空,比如字串的」」,或者guid的guid.empty。

對於string,我們一般通過string.isnullorwhitespace來進行判斷。

public

void test( string

name )

使用擴充套件方法封裝後,簡化為下面的**。

public

void test( string

name )

isempty擴充套件方法,我定義在string、guid、guid?等具體型別上,不能擴充套件到object,因為每種型別的實現不同,當然可以進行各種判斷,但執行效率可能非常低下,畢竟這是乙個常用方法。

在util專案中新增extensions.validate檔案,它是extensions的部分類,**如下。

using

system;

namespace

util

//////

是否為空

/// ///

值 public

static

bool isempty( this

string

value )

//////

是否為空

/// ///

值 public

static

bool isempty( this guid?value )

//////

是否為空

/// ///

值 public

static

bool isempty( this

guid value )

}}

單元測試**如下。

using

system;

using

microsoft.visualstudio.testtools.unittesting;

namespace

util.tests.extensions

//////

檢查空值,值為null則丟擲異常

///[testmethod]

[expectedexception(

typeof

( argumentnullexception ) )]

public

void

testchecknull_null_throw()

catch

( argumentnullexception ex )

}//////

測試是否空值

///[testmethod]

public

void

testisempty_string()

//////

測試是否空值

///[testmethod]

public

void

testisempty_guid()

//////

測試是否空值

///[testmethod]

public

void

testisempty_guid_nullable()

}}

.net應用程式框架交流qq群: 386092459,歡迎有興趣的朋友加入討論。

應用程式框架實戰三 什麼是應用程式框架

什麼是應用程式框架?正如框架是架構的具體實現一樣,應用程式框架是應用程式架構的具體實現。不過這樣說了等於沒說,因為框架和架構都是如此抽象。為了獲得直觀的感受,下面先看看更具體的.net framework和第三方框架。net framework為.net程式設計師提供了乙個龐大的類庫,幾乎任何開發任...

應用程式框架實戰六 應用程式框架的特點

之前說過,net framework為所有.net程式設計師提供底層支援,第三方開源框架建立在.net framework的基礎上,專門解決某些特定問題,而應用程式框架則建立在.net framework和第三方框架的基礎上,為專案開發的方方面面保駕護航。它們的作用雖然都是幫助程式設計師更好的建立應...

應用程式框架實戰三 什麼是應用程式框架

什麼是應用程式框架?正如框架是架構的具體實現一樣,應用程式框架是應用程式架構的具體實現。不過這樣說了等於沒說,因為框架和架構都是如此抽象。為了獲得直觀的感受,下面先看看更具體的.net framework和第三方框架。net framework為.net程式設計師提供了乙個龐大的類庫,幾乎任何開發任...