程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 從鍵盤布局開始說C#中的符號

從鍵盤布局開始說C#中的符號

編輯:.NET實例教程

前言:年關將至,因此到處都出現了各種各樣的總結和歸類文章。因此,這裡我也帶各位讀者對.Net中出現的符號總結一下,溫故知新,希望能將你可能對有些符號的模糊的記憶重新理清,對你有所啟示。

程序員們,花5秒鐘將你的眼神從屏幕上挪開,看下你的鍵盤(e.g.圖1),找找鍵盤上那些熟悉的符號,作為一個C#開發人員,你有沒有突然發現它們大部分都是那麼的親切呢?是的,看看鍵盤上的這些符號,大部分都已經被微軟用掉了,剩下的幾個雖然目前沒被用上,但我相信微軟內部應該也有人盯著他們,指不定哪天你就會發現一個新的符號用法會加入到C#中來。因為符號在一門語言中往往比字母更能形象的傳文達意,同時給開發人員留下深刻的印象,最常見的例子就是+/-/*//這些數學操作符了,而且相對Java來講,.Net還支持用戶重載常用操作符。言歸正傳,下面我將按鍵盤布局從左往右一一講解這些符號,順便也帶大家復習下這些符號。

圖1,鍵盤符號圖

單個符號

由於在C#中這些符號不僅單用,還有各種組合使用情況,因此這裡首先介紹它們但用的情況。

1. ~

按位求補符。這個符號可能有些同學見得比較少,不過它確實很有用。e.g. 1的32位表示為0000 0000 0000 0000 0000 0000 0000 0001,那麼int a=~1實際為-2,即1111 1111 1111 1111 1111 1111 1111 1110。另外,~在List的BinarySearch中將會使你的操作方便很多。在這個二分查找的實現中,如果查找的元素不在集合中,它會返回一個負值,技巧就在這裡,這個數的求補結果是下一個比查找元素大的元素的位置,如果沒有更大的元素,那麼它表示元素總數。這個技巧使得我們在插入新的元素的時候方便很多。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);
    }
}

輸出結果為:

private protected protected internal public

2. !,@,#和$

!相信地球人都知道,非邏輯運算符,這裡不多講。@常用在字符串開頭,它可以告訴編譯器忽略轉義符,從而可以很方便的將一些特殊字符按用戶表達意願輸出,另外在ASPx.Net中這個字符常和其他字符混合使用。#和$微軟暫時沒盯上(當然如果你覺得C#用到了#的話也行)。不過$符號相信很多人都熟悉,大名鼎鼎的JQuery使得這個符號處處可見,不過不保證以後微軟也插上一腳。

4.%,^,&,*,(),-,+,=,{},|和\

這些符號基本都是常見符號符號,因此這裡也只做簡單解釋。%是求余運算符,^是異或位運算符,&則是且位運算符,另外|是或位運算符。*既可以用作乘法符號,還可以表示為指針。()和{}用於對象中,前者一方面表示函數參數區域,另一方面在強制類型轉換時表示把一種類型強制轉換為括號中的類型,除此,它還用來包裹運算部分從而制定運算優先級,後者則長表示代碼片段作用域,它既可以用於指代命名空間中的有哪些類或類中包括哪些屬性方法等,還可以用於在協助C#中某些特殊操作時指定其作用塊,如fixed,using等等,另外在字符串格式化中,{}和數字組合表示目標字符串中待替換子串位置, e.g. String.Format(“{0} + {1}={3}”, 1,2,3)。+通常表示相加數學運算符,=則長用來表示賦值操作。另外,這些操作符可以組合來表示不同含義,後面將會詳細說明這一部分。\用於轉義符的開始,如\n表示換行。

5.[]

這個符號同樣常見,它通常有三種使用方式,一個是用於數組中表示索引位置,一種為添加類型的特性時使用,另外它也常常和this關鍵字在類中配合使用來形成類索引。e.g.

以下為引用的內容:

class Some

{

int this[string
 item]

{

get


{

if(item==”a”)return 1;

return 0
;

}

}

}

6. :,;',”,’,<,,,>,.,/,?

:目前沒有單獨使用情況,後面會講到它的組合使用,;處處可見,C#不像VB,它用;表示語句的結束。”包裹字符串,’則包裹單個字符。<和>分別為大和小的邏輯運算符,,用於分隔參數,.用於表示對象成員選擇器或小數點。/則表示除以的數學運算符。?單個常用於表示可空的值類型,e.g. int? a=null,它也可以與很多字符組合使用來表示不同意義。

符號組合

好了,鍵盤上的符號鍵基本介紹完畢,在C#中,符號更為強大的一面是它們之間不同組合產生不同的意義,這裡將會對此作出一些簡單介紹。

1. 單個字符重復組合

這裡有?和+,-,&,|,<,>以及=。??同樣用於泛型中,它在值類型數據操作時非常有用,它可以在值類型為空時指定默認值,e.g. int a=someNullable??100;它表示如果someNullable不為空時則將其值賦給a,否則將100賦值給a,另外你也可以參考這篇文章。++和--表示自加或減1。&&,||和==則表示邏輯關系的且,或和相等。<<和>>則分別表示左右移位操作。最後//表示單行注釋,O(∩_∩)O~。

1. 數學運算符,位運算符,邏輯運算符和=的組合使用。

和C/C++中類似,C#通過這兩種符號的組合簡化了程序員在常見數學運算時的輸入。如+=,-=,*=,/=,%=,還有&=,~=,|=等,它是一個數自身與某個數做相應數學操作的結果。如a+=10完整形式為:a=a+10。邏輯運算符和=則表示或的關系,如>=表示大於或等於。

2. ?和:組合

這個組合的符號不是緊挨著的,不過他們必須組合使用。這裡?和:組成條件表達式,e.g. int c= a==b?a:b; 它的存在同樣簡化程序員代碼。

3. =>組合以及<>配對

=>組合是3.0以後加入的,它也是構成Lamda表達使得部分,它使得匿名函數的書寫更加簡潔。通常它前面會包含有表達式參數部分,後面則是表達式的主體部分。<>則在泛型中大量使用,它用來包裹類型參數。

4. ASPX頁面中的符號組合

在ASPX中組合符號很多,一般基本都是左右尖括號和其他符號組合來表示服務器端腳本代碼,從而達到插入服務器代碼的目的。這裡僅列出一些常見符號組合。

首先<%@ 和%>用來表示ASPX 2.0的Page指令,它一般出現在頁面頂部。在ASPX.Net頁面或用戶控件中有11個指令(注1),指令格式為:<%@ [Directive] [Attribute=Value] %>。

<%=%>用於在Html代碼中插入.NET代碼片段。在ASPx.Net MVC中這個字符組合非常常見,這點類似以前的ASP,這也是有些程序員認為MVC退回到ASP時代的一個原因。

總結

符號在很多時候不僅比字符更加簡潔的表達意思,而且它還更形象和直觀,這也是符號在.net中出現的一個原因。不過符號並不是越多越好,所謂過猶不及,太多太復雜的符號有時候反而會讓程序員產生混淆和誤解。所以目前.NET中出現的符號數量並不是太多,並且未來.NET中符號應該是基本固定的。不過這並不妨礙微軟在適當的時候添加一些新的,有用的符號。比如有人在展望.NET 5.0的時候曾提到目前微軟推出的Vedea語言的一個很不錯的特性:綁定,它的符號為:textbox.Text := slider.Value; 這意味著當Value改變的時候,Text也會相應改變。而雙向綁定的語法則有所不同:textbox.Text :=: slider.Value; 相信這個新的符號如果加入到.Net中來一定會讓我們的代碼比以前更加方便的!同時也期待類似的能簡化我們程序員並且形象,直觀的新特性符號能在未來出現。對了,你又期待有怎樣的新符號加入呢?

注1:ASP.Net中的11頁面或用戶控件指令為:Assembly, Control, Implements, Import, Master, MasterType, OutputCache, Page, PreviousPageType, Reference, Register.

 

作者:Sean Zhu

原文地址:http://www.cnblogs.com/jujusharp/archive/2009/12/25/c-sharp-symbols-you-should-know.Html

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved