突然想到,想要通過名字來獲得列舉的值,看了不少的資料,發現上面都只是解釋列舉的語法而已,對於它的實際應用,一點也不提及,難道只能用switch來判斷?不好吧,這樣也未免太土了點。後來發現了列舉還有這樣的用法,真的很使用,看**:
code再來看一下執行結果圖:namespace
enumtest
class
program}}
怎麼樣,是不是覺得很實用啊。
接下來要介紹的是委託(delegate),有對delegate不太了解的人可以看一下我以前寫的乙個隨筆什麼是委託(delegate)
。我們平時使用委託都是單個的指定委託的方法,但是如果我們需要通過引數動態的指定呢?難道也是用switch?這樣做太麻煩了,還有更好的方法,看**:
code下面是執行的結果圖:namespace
delegatetest
public
void
secondmethod()
}delegate
void
dele();
class
program}}
接下來是乙個c#經常被忽略的特性,匿名方法。雖然匿名方法很少用到,但是知道總比不知道的好。以delegate為例,我們平時都是賦予delegate具體的方法,但是有時候有乙個方法要委託,但是它要執行的功能實在是很簡單,而且可能也就只用一次而已,但是要給它寫乙個具體的方法實在是麻煩。而c#2.0為我們提供了匿名方法的特性,**如下:
code執行結果如下圖:namespace
anonymity
;d.invoke();}}
}
接下來是索引器(indexer)了,寫技術文章不像寫**,真的挺累的。要構思,要描述,要寫**,要除錯,更重要的是,要敲鍵盤。好了,抱怨到些為止。索引器(indexer)能讓我們像訪問陣列一樣訪問物件,至於它有什麼作用呢?只有用到了才知道,看**:
遺憾的是,它不支援foreach送代。要實現送代的功能,可以實現ienumerable介面。
接下來是。。。?還有接下來?是不是看得很累了,其實我也寫得很累了。接下來是雜湊表(hashtable),hashtable大家都知道很好用,大家可能會發現,它好像不能使用foreach來送代。其實它是可以送代的,只是稍微有點不同而已,看**:
code執行結果如下圖:namespace
hashtabletest}}
}
大家仔細看一下,它送代返回的型別是dictionaryentry而不是我們預料中的string。為什麼是這樣的呢?hashtable不同於其它的collection,它儲存的不僅是值(value),同時還儲存著鍵(key),它們在hashtable中是以dictionaryentry型別儲存著的。再回顧一下上面的索引器(indexer),我們就能推斷出,hashtable可能是乙個實現了索引器功能的類(不是別罵我,我也是猜的)。
好了,終於寫完了,希望對大家有所幫助。
C 一些實用的,容易被遺忘的特性,經驗和技巧
突然想到,想要通過名字來獲得列舉的值,看了不少的資料,發現上面都只是解釋列舉的語法而已,對於它的實際應用,一點也不提及,難道只能用switch來判斷?不好吧,這樣也未免太土了點。後來發現了列舉還有這樣的用法,真的很使用,看 pre code namespace enumtest class prog...
C 一些實用的,容易被遺忘的特性,經驗和技巧
突然想到,想要通過名字來獲得列舉的值,看了不少的資料,發現上面都只是解釋列舉的語法而已,對於它的實際應用,一點也不提及,難道只能用switch來判斷?不好吧,這樣也未免太土了點。後來發現了列舉還有這樣的用法,真的很使用,看 enumtest class program 再來看一下執行結果圖 怎麼樣,...
一些遺忘的標籤
在做頁面時,基本上都忘了這幾個標籤,基本上都沒用到,今天偶爾看到了,就總結下 q 引用比較短的話,例如 吃飯了沒啊 吃飯了沒啊 在ie6下面是沒有引號的,為了表現統一在重置樣式的時候加上q before,q after blockquote 引用比較長的話,兩邊有縮排,在ie和ff瀏覽器表現統一 a...