每次遇到用url傳參數時都會因為有時參數沒有傳而導致錯誤
一般忘記判斷Request.QueryString["plcaeNo"]!=null時會這樣寫
每次遇到用url傳參數時都會因為有時參數沒有傳而導致錯誤
一般忘記判斷Request.QueryString["plcaeNo"]!=null時會這樣寫
string _result;
int plcaeNo;
if (int.TryParse(Request.QueryString["plcaeNo"].ToString(), out plcaeNo)) {
// dosomething
}
結果伴隨來的常常會看到這個畫面
所以通常得這樣寫才對
string _result;
int plcaeNo;
if (Request.QueryString["plcaeNo"] != null && int.TryParse(Request.QueryString["plcaeNo"].ToString(), out plcaeNo)) {
// dosomething
}
說真的
這樣還真的有點麻煩
每次都要打那麼多code,多宣告一個object物件去參照Request.QueryString["plcaeNo"]可以省一點code
但是還真的有點浪費,因為通常接到的參數型別錯誤就用不到剛剛宣告的object的
乾脆來寫一個method好了
protected bool GetParameter<T>(object input, out T output) {
if (input != null) {
try {
object tryObject = Convert.ChangeType(input, typeof(T));
output = (T)tryObject;
return true;
} catch (Exception) {
output = default(T);
return false;
}
} else {
output = default(T);
return false;
}
}
然後這樣使用即可
DateTime _result;
if (GetParameter<DateTime>(Request.QueryString["plcaeNo"], out _result)) {
Response.Write(_result.ToString());
} else {
Response.Redirect("~/error.aspx");
}
寫的不美
請多見諒
歡迎批評指教
感謝^^