在工作中經常會遇到 驗證string 中的值是否屬於int型或者是bool又或是date
一般的做法是用方法 型別.tryparse(string,型別) 來做驗證.
string strvalue = "但是使用此方法需要建立乙個該型別的變數.我工作中寫的是web程式經常乙個頁面要驗證來自前台的值型別有10幾個,這樣就略顯有點麻煩了. 因為我們只要判斷下string的值是不是這個型別就好.123"
;
intintvalue;
bool isint = int.tryparse(strvalue, out intvalue);
我發現這個tryparse方法基本 bool int date 這些型別都會存在 但是查詢了下他們的介面裡均沒有此方法.又查詢了一遍iconvertible介面子類發現所有子類均存在此方法
於是就用想法給string 加上乙個名為 is的擴充套件方法
因為 tryparse 方法不是實現介面定義的。而c#系統類庫中實現iconvertible介面的幾乎都有tryparse 方法我們就定義型別t是繼承iconvertible的;
但也有可能型別t沒有tryparse 方法或者方法簽名不是string,out t
這種情況下我們丟擲乙個自定義異常 tryparseexception
還有一點要注意使用反射查詢 tryparse 方法時指定方法的引數型別為 查詢結果是null 因為 tryparse 的第二個引數宣告是 out 的,要使用才能查詢到該方法
///這個幫助類就算是完成了 我們來試下效果吧!///typevalidate 的摘要說明
///public
static
class
typevalidate
;
var method = type.getmethod("
tryparse
", types);
if (method == null
)
try);
}catch
}}///
///型別沒有方法 tryparse 或 沒有無參構造方法 或沒有方法簽名 bool tryparse(string,t)的方法
///public
class
tryparseexception : exception
測試**
response.write(string.format("結果12131312 is int =true12131312 is int =
", "
12131312
".is()));
response.write(
string.format("
121313123131231 is int =
", "
121313123131231
".is()));
response.write(
string.format("
1231231231313123 is int =
", "
1231231231313123
".is()));
response.write(
string.format("
adadasda is int =
", "
adadasda
".is()));
response.write(
string.format("
true is bool =
", "
true
".is()));
response.write(
string.format("
1 is bool =
", "
1".is()));
response.write(
string.format("
2013/4/5 06:06:06 is date =
", "
2013/4/5 06:06:06
".is()));
121313123131231 is int =false
1231231231313123 is int =false
adadasda is int =false
true is bool =true
1 is bool =false
2013/4/5 06:06:06 is date =true
技術***
String類的一些問題
string a hello string b hello string c he llo string d he new string llo a b 1 a c 2 a d 3首先公布答案,式子1返回true,式子2返回true,式子3返回false 式子1很好理解,由於存在字面量池,在用字面量...
string類的一些成員函式
1 const char data data 函式返回指向自己的第乙個字元的指標.由於data 函式返回的是const char 所以不能直接通過指標修改返回的字串的值,如果要修改,必須把型別轉化為char 2 const char c str c str 函式返回乙個指向正規c字串的指標,內容與本...
String 類的常用的一些方法
string 類的總結。string 類一旦被建立,就不能被改變。以下是string類的常用方法,必須熟記和掌握。1,char charat int index 根據索引角標來獲取對應的char型別字元。2,int indexof int ch 返回指定字元在字串中第一次出現的索引角標。如果沒有,返...