原創(chuàng)|其它|編輯:郝浩|2009-12-25 10:41:07.000|閱讀 500 次
概述:前言:年關(guān)將至,因此到處都出現(xiàn)了各種各樣的總結(jié)和歸類文章。因此,這里我也帶各位讀者對(duì).NET中出現(xiàn)的符號(hào)總結(jié)一下,溫故知新,希望能將你可能對(duì)有些符號(hào)的模糊的記憶重新理清,對(duì)你有所啟示。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
前言:年關(guān)將至,因此到處都出現(xiàn)了各種各樣的總結(jié)和歸類文章。因此,這里我也帶各位讀者對(duì).NET中出現(xiàn)的符號(hào)總結(jié)一下,溫故知新,希望能將你可能對(duì)有些符號(hào)的模糊的記憶重新理清,對(duì)你有所啟示。
程序員們,花5秒鐘將你的眼神從屏幕上挪開,看下你的鍵盤(e.g.圖1),找找鍵盤上那些熟悉的符號(hào),作為一個(gè)C#開發(fā)人員,你有沒有突然發(fā)現(xiàn)它們大部分都是那么的親切呢?是的,看看鍵盤上的這些符號(hào),大部分都已經(jīng)被微軟用掉了,剩下的幾個(gè)雖然目前沒被用上,但我相信微軟內(nèi)部應(yīng)該也有人盯著他們,指不定哪天你就會(huì)發(fā)現(xiàn)一個(gè)新的符號(hào)用法會(huì)加入到C#中來。因?yàn)榉?hào)在一門語言中往往比字母更能形象的傳文達(dá)意,同時(shí)給開發(fā)人員留下深刻的印象,最常見的例子就是+/-/*//這些數(shù)學(xué)操作符了,而且相對(duì)java來講,.net還支持用戶重載常用操作符。言歸正傳,下面我將按鍵盤布局從左往右一一講解這些符號(hào),順便也帶大家復(fù)習(xí)下這些符號(hào)。
圖1,鍵盤符號(hào)圖
由于在C#中這些符號(hào)不僅單用,還有各種組合使用情況,因此這里首先介紹它們但用的情況。
1. ~
按位求補(bǔ)符。這個(gè)符號(hào)可能有些同學(xué)見得比較少,不過它確實(shí)很有用。e.g. 1的32位表示為0000 0000 0000 0000 0000 0000 0000 0001,那么int a=~1實(shí)際為-2,即1111 1111 1111 1111 1111 1111 1111 1110。另外,~在List的BinarySearch中將會(huì)使你的操作方便很多。在這個(gè)二分查找的實(shí)現(xiàn)中,如果查找的元素不在集合中,它會(huì)返回一個(gè)負(fù)值,技巧就在這里,這個(gè)數(shù)的求補(bǔ)結(jié)果是下一個(gè)比查找元素大的元素的位置,如果沒有更大的元素,那么它表示元素總數(shù)。這個(gè)技巧使得我們?cè)诓迦胄碌脑氐臅r(shí)候方便很多。e.g.
static void main()
{
List<string> list = new List<string>();
int search;
list.Add("public");
list.Add("protected");
list.Add("private");
list.Sort();
search = list.BinarySearch("protected internal");
if (search < 0)
{
list.Insert(~search, "protected internal");
}
foreach (string accessModifier in list)
{
Console.WriteLine(accessModifier);
}
}
輸出結(jié)果為:
private
protected
protected internal
public
2. !,@,#和$
!相信地球人都知道,非邏輯運(yùn)算符,這里不多講。@常用在字符串開頭,它可以告訴編譯器忽略轉(zhuǎn)義符,從而可以很方便的將一些特殊字符按用戶表達(dá)意愿輸出,另外在Aspx.Net中這個(gè)字符常和其他字符混合使用。#和$微軟暫時(shí)沒盯上(當(dāng)然如果你覺得C#用到了#的話也行)。不過$符號(hào)相信很多人都熟悉,大名鼎鼎的JQuery使得這個(gè)符號(hào)處處可見,不過不保證以后微軟也插上一腳。
4.%,^,&,*,(),-,+,=,{},|和\
這些符號(hào)基本都是常見符號(hào)符號(hào),因此這里也只做簡單解釋。%是求余運(yùn)算符,^是異或位運(yùn)算符,&則是且位運(yùn)算符,另外|是或位運(yùn)算符。*既可以用作乘法符號(hào),還可以表示為指針。()和{}用于對(duì)象中,前者一方面表示函數(shù)參數(shù)區(qū)域,另一方面在強(qiáng)制類型轉(zhuǎn)換時(shí)表示把一種類型強(qiáng)制轉(zhuǎn)換為括號(hào)中的類型,除此,它還用來包裹運(yùn)算部分從而制定運(yùn)算優(yōu)先級(jí),后者則長表示代碼片段作用域,它既可以用于指代命名空間中的有哪些類或類中包括哪些屬性方法等,還可以用于在協(xié)助C#中某些特殊操作時(shí)指定其作用塊,如fixed,using等等,另外在字符串格式化中,{}和數(shù)字組合表示目標(biāo)字符串中待替換子串位置, e.g. String.Format(“{0} + {1}={3}”, 1,2,3)。+通常表示相加數(shù)學(xué)運(yùn)算符,=則長用來表示賦值操作。另外,這些操作符可以組合來表示不同含義,后面將會(huì)詳細(xì)說明這一部分。\用于轉(zhuǎn)義符的開始,如\n表示換行。
5.[]
這個(gè)符號(hào)同樣常見,它通常有三種使用方式,一個(gè)是用于數(shù)組中表示索引位置,一種為添加類型的特性時(shí)使用,另外它也常常和this關(guān)鍵字在類中配合使用來形成類索引。e.g.
class Some
{
int this[string item]
{
get
{
if(item==”a”)return 1;
return 0;
}
}
}
6. :,;',”,’,<,,,>,.,/,?
:目前沒有單獨(dú)使用情況,后面會(huì)講到它的組合使用,;處處可見,C#不像VB,它用;表示語句的結(jié)束。”包裹字符串,’則包裹單個(gè)字符。<和>分別為大和小的邏輯運(yùn)算符,,用于分隔參數(shù),.用于表示對(duì)象成員選擇器或小數(shù)點(diǎn)。/則表示除以的數(shù)學(xué)運(yùn)算符。?單個(gè)常用于表示可空的值類型,e.g. int? a=null,它也可以與很多字符組合使用來表示不同意義。
好了,鍵盤上的符號(hào)鍵基本介紹完畢,在C#中,符號(hào)更為強(qiáng)大的一面是它們之間不同組合產(chǎn)生不同的意義,這里將會(huì)對(duì)此作出一些簡單介紹。
1. 單個(gè)字符重復(fù)組合
這里有?和+,-,&,|,<,>以及=。??同樣用于泛型中,它在值類型數(shù)據(jù)操作時(shí)非常有用,它可以在值類型為空時(shí)指定默認(rèn)值,e.g. int a=someNullable??100;它表示如果someNullable不為空時(shí)則將其值賦給a,否則將100賦值給a,另外你也可以參考。++和--表示自加或減1。&&,||和==則表示邏輯關(guān)系的且,或和相等。<<和>>則分別表示左右移位操作。最后//表示單行注釋,O(∩_∩)O~。
1. 數(shù)學(xué)運(yùn)算符,位運(yùn)算符,邏輯運(yùn)算符和=的組合使用。
和C/C++中類似,C#通過這兩種符號(hào)的組合簡化了程序員在常見數(shù)學(xué)運(yùn)算時(shí)的輸入。如+=,-=,*=,/=,%=,還有&=,~=,|=等,它是一個(gè)數(shù)自身與某個(gè)數(shù)做相應(yīng)數(shù)學(xué)操作的結(jié)果。如a+=10完整形式為:a=a+10。邏輯運(yùn)算符和=則表示或的關(guān)系,如>=表示大于或等于。
2. ?和:組合
這個(gè)組合的符號(hào)不是緊挨著的,不過他們必須組合使用。這里?和:組成條件表達(dá)式,e.g. int c= a==b?a:b; 它的存在同樣簡化程序員代碼。
3. =>組合以及<>配對(duì)
=>組合是3.0以后加入的,它也是構(gòu)成Lamda表達(dá)使得部分,它使得匿名函數(shù)的書寫更加簡潔。通常它前面會(huì)包含有表達(dá)式參數(shù)部分,后面則是表達(dá)式的主體部分。<>則在泛型中大量使用,它用來包裹類型參數(shù)。
4. ASPX頁面中的符號(hào)組合
在ASPX中組合符號(hào)很多,一般基本都是左右尖括號(hào)和其他符號(hào)組合來表示服務(wù)器端腳本代碼,從而達(dá)到插入服務(wù)器代碼的目的。這里僅列出一些常見符號(hào)組合。
首先<%@ 和%>用來表示ASPX 2.0的Page指令,它一般出現(xiàn)在頁面頂部。在ASPX.NET頁面或用戶控件中有11個(gè)指令(注1),指令格式為:<%@ [Directive] [Attribute=Value] %>。
<%=%>用于在HTML代碼中插入.NET代碼片段。在Aspx.Net MVC中這個(gè)字符組合非常常見,這點(diǎn)類似以前的ASP,這也是有些程序員認(rèn)為MVC退回到ASP時(shí)代的一個(gè)原因。
總結(jié)
符號(hào)在很多時(shí)候不僅比字符更加簡潔的表達(dá)意思,而且它還更形象和直觀,這也是符號(hào)在.net中出現(xiàn)的一個(gè)原因。不過符號(hào)并不是越多越好,所謂過猶不及,太多太復(fù)雜的符號(hào)有時(shí)候反而會(huì)讓程序員產(chǎn)生混淆和誤解。所以目前.NET中出現(xiàn)的符號(hào)數(shù)量并不是太多,并且未來.NET中符號(hào)應(yīng)該是基本固定的。不過這并不妨礙微軟在適當(dāng)?shù)臅r(shí)候添加一些新的,有用的符號(hào)。比如有人在展望.NET 5.0的時(shí)候曾提到目前微軟推出的的一個(gè)很不錯(cuò)的特性:綁定,它的符號(hào)為:textbox.Text := slider.Value; 這意味著當(dāng)Value改變的時(shí)候,Text也會(huì)相應(yīng)改變。而雙向綁定的語法則有所不同:textbox.Text :=: slider.Value; 相信這個(gè)新的符號(hào)如果加入到.NET中來一定會(huì)讓我們的代碼比以前更加方便的!同時(shí)也期待類似的能簡化我們程序員并且形象,直觀的新特性符號(hào)能在未來出現(xiàn)。對(duì)了,你又期待有怎樣的新符號(hào)加入呢?
注1:Asp.Net中的11頁面或用戶控件指令為:Assembly, Control, Implements, Import, Master, MasterType, OutputCache, Page, PreviousPageType, Reference, Register.
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:博客園