iT邦幫忙

DAY 26
1

給學弟的ASP.NET網頁學習經驗系列 第 26

ASP.NET學習經驗#26----var到底代表??好想直接擴充想要的功能??

有時在網路上學習一些網頁範例,常會看到變數被宣告成var

雖然看久大概知道用法,如果都沒真正去學習它,常就會避而遠之少用

並把它改成能明白的型別(string、int、object..)方便使用

什麼是var?

var (C# 參考)

var是隱含型別

在宣告時不去確定它確切的型態,在編譯時期

編譯器透過等號右邊的內容幫你決定!

透過VS的中斷點可以看到i已經被決定是Int32的型態,Why?

這是因為在右邊我們給的初始值是10這個數字

所以編譯器就幫忙判斷最符合的型別,超級方便的!!!

使用時注意宣告變數後必定要初始化值!!否則會賞你個錯誤

為何說編譯時期就已經被決定呢?

因為**:**

在寫程式碼時,intellisense就已經可以看出端倪!

所以它還是可以享有自動完成的福利唷!

============================================================

有時會覺得某些型別提供的方法不夠好用或者常有一些自己額外需求

所以總是需要在旁邊寫一些Function來支援一下,把要處理的東西傳進去!

甚至累積起來都變成一個小類別庫裡頭放著自己需要的功能

但是如果數量多,查找很不方便

此時受不了了!只好

擴充方法

不只能省去像在找工具箱一樣的時間,

也可以保持流暢風格的使用方法!!(比較好解讀,個人蠻喜歡的)

拿上一篇文章內限制長度的方法來試試看

一般使用自訂的方法或自訂類別的方法都寫成:

string content = "abcdefghijklmnopqrstuvwxyz";

string str1 = CheckStringLength(content, 10);
//或
string str2 = ExensionString.CheckStringLength(content, 10);

但是如果使用時如果能寫成這樣不是更好嗎?

string str3 = content.CheckStringLength(10);

擴充方法就是讓你在不變更原本類別所提供的方法下,去新增自訂的方法!

設計時有幾個地方要注意就是:

1.擴充方法的第一個參數會指定方法作業所在的類型,

而且參數前面會加上 this 修飾詞

(把被擴充的型別放在第一個參數並加上this修飾詞)

2.要使用static靜態類別與方法

3.使用時如果不同命名空間則需要先引用(using)

這樣就完成擴充了!


上一篇
ASP.NET學習經驗#25----模糊查詢、搜尋功能該怎麼做??
下一篇
ASP.NET學習經驗#27----瞭解ADO.NET,常用的DataSet與DataReader
系列文
給學弟的ASP.NET網頁學習經驗30

尚未有邦友留言

立即登入留言