表示式的定義
各類表示式概覽
語句的定義
語句詳解
表示式是演算法邏輯的最基本的(最小)單元,表達一定的演算法意圖
因為操作符具有優先順序,所以表示式也就有了優先順序
c#語言中表示式的分類
a value。任何能得到值的運算(操作符和結果型別)
a variable 。每個變數都有聯合型別 布林型別表示式得到的就是bool型別的值
a namespace。
a type typeof(int32)
a method group 比如console.writeline就是乙個方法組
a null literal 空值
an 匿名方法表示式
a property access 訪問屬性
a event access 訪問事件
a indexer access 訪問索引器
nothing 度返回值為void的方法的呼叫
復合表示式的求值
注意操作符的優先順序和同優先順序操作符的運算方向
除了賦值操作符,一般都是從左向右的。
語句的定義:
作用:宣告變數,賦值,呼叫函式,迭代迴圈,根據條件進行分支跳轉
c#除了能讓「順利地」表達演算法思想,還能通過條件判斷、迴圈等方法控制程式邏輯的走向
語句由分號結尾,但由分號結尾的不一定都是語句。比如引用命名空間,或字段的宣告publicstring name;
所以,語句一定是出現在方法體中的,來判斷即可。
語句詳解:
三大類:標籤語句(henshaochuxian);宣告語句;嵌入式語句
宣告語句:區域性變數宣告和區域性常量宣告
注意:int x = 100;
int x;
x=100;
不是一回事。上面是宣告時追加了初始化器;下面是只宣告,後面才賦值
常量宣告並初始化之後不能在改變;所以常常在前面加上const。
表示式語句:語句表示式;
哪些表示式允許作為語句使用:呼叫表示式(console.writeline);物件建立表示式(new form());賦值語句;後置自增自減,前置自增自減表示式;
塊語句:用於在只允許單個語句的上下文中編寫多條語句
block:
由乙個擴在大括號內的可選
塊語句無論什麼都會被編譯器當成一條語句來對待;
(ctrl+右花括號鍵)來快速找到對應的{}體
塊語句中可宣告c#中的任何一類語句
藉此說明一下變數的作用域:在一條塊語句之前或之外宣告的變數在塊語句中是可以訪問的,在塊語句中宣告的出了快語句就不能用了。
選擇語句:(判斷、分支)語句
if語句,switch語句(不包括任何浮點型別),try語句(用於捕捉在塊的語句執行期間發生的各種異常)
平時把優化邏輯的過程叫做**重構。
switch表示式的型別為:sbyte\byte\short\ushort\int\uint\long \ulong\bool\char\string\enum-type\或者是對應於以上型別的可控null型別。
ctrl+l剪下一整行
try -catch
try-finally
try-catch- finally(catch可有多個,但只會執行乙個)
catch不加任何異常型別,抓的是通用異常;
catch(argumentnullexception\formatexception\overflowexception) 捕捉特定異常型別
catch(exception ex)除了異常的型別外,還可以新增異常識別符號ex.message throw (ex); 對於異常誰呼叫誰處理
迭代語句:while do for foreach
while語句:按不同條件執行乙個嵌入語句執行0次或多次
do語句:按不同條件執行乙個嵌入語句一次或多次。
continue語句:將開始直接封閉它的while、do、for或foreach語句的一次新迭代。
break語句:將退出直接封閉它的switch、while、do、for或foreach語句。
for語句:常用於計數迴圈 可讀性要比do語句和while語句強很多
tab鍵可以在for語句中需要更改的地方跳轉
for(;? {} 相當於 while(true)
foreach語句:用於列舉乙個集合的元素(遍歷),並對該集合中的每個元素執行一次相關的操作。
什麼樣的集合可以被遍歷:陣列array,泛型list
所有實現了ienumerable介面的陣列就可以被迭代
迭代器:enumerator,下面是用迭代器迭代集合的方法。
第一次while語句已經執行完,迭代器為false了,如果不重置enumerator迭代器,下乙個while執行也不會顯示有值的。上圖的結果是列印了兩遍1-8.
跳轉語句:(break;continue;只會對直接包含自己的那一層起作用)goto;return;throw
跳轉語句將控制語句轉到位置稱為跳轉語句的目標(target)
原則:盡早return,好處:立刻鑑別出在什麼時候是有問題的且避免頭重腳輕
對於返回型別是void型別的,不寫return也會直接返回了。
如果返回型別不是void型別的,一定要保證return,像上面else中的return。如果不加else這個分支或者不再if後面加return編譯不過去,因為存在不滿足if的條件的情況時沒有辦法處理。
空語句:;
標籤語句:hello:
checked/unchecked語句:
using語句
yield語句
lock語句(用於多執行緒)
C 入門詳解
1.型別轉換 1 隱式implicit型別轉換 往下展開 int x convert.toint32 string 不丟失精度的轉換 int轉成long,single轉換double等 子類向父類的轉換 h.此時成員訪問符,看不到例項中t的方法teach,因為規定引用變數去訪問引用的例項的成員時,只...
C 入門 引用詳解
1.引用作為其他變數的別名而存在,因此在一些場合可以代替指標 2.引用相對於指標來說具有更好的可讀性和實用性 3.引用在c 內部實現就是乙個常量指標 const p int a int const a include stdafx.h include include string using nam...
C 入門詳解 2
1.類是現實世界事物的模型 2.類與物件的關係 物件也叫例項,是類經過例項化後得到的記憶體中的實體 依照類,可以建立物件,這就是 例項化 常用new操作符來建立類的例項 現實世界中常稱物件,程式世界中常稱例項,二者無太大區別 注意 飛機和一架飛機,前者是概念,後者是例項,只有例項才有動作才能飛,概念...