C#指南,重温基础,展望远方!(4)表达式
生活随笔
收集整理的這篇文章主要介紹了
C#指南,重温基础,展望远方!(4)表达式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
表達式是在操作數和運算符的基礎之上構造而成。?表達式的運算符指明了向操作數應用的運算。?運算符的示例包括?+、-、*、/?和?new。?操作數的示例包括文本、字段、局部變量和表達式。
如果表達式包含多個運算符,那么運算符的優先級決定了各個運算符的計算順序。?例如,表達式?x + y * z?相當于計算?x + (y * z),因為?*?運算符的優先級高于?+?運算符。
如果操作數兩邊的兩個運算符的優先級相同,那么運算符的結合性決定了運算的執行順序:
- 除了賦值運算符之外,所有二元運算符均為左結合運算符,即從左向右執行運算。?例如,x + y + z?將計算為?(x + y) + z。
- 賦值運算符和條件運算符 (?:) 為右結合運算符,即從右向左執行運算。?例如,x = y = z?將計算為?x = (y = z)。
可以使用括號控制優先級和結合性。?例如,x + y * z?先計算?y?乘?z,并將結果與?x?相加,而?(x + y) * z?則先計算?x?加?y,然后將結果與?z?相乘。
大多數運算符都可以重載。?借助運算符重載,可以為一個或兩個操作數為用戶定義類或結構類型的運算指定用戶定義運算符實現代碼。
下面總結了 C# 運算符,按優先級從高到低的順序列出了各類運算符。?同一類別的運算符的優先級也相同。?每個類別下均列出了相應類別的表達式,以及對每種表達式類型的說明。
- 基本
- x.m:成員訪問
- x(...):方法和委托調用
- x[...]:數組和索引器訪問
- x++:后置遞增
- x--:后置遞減
- new T(...):創建對象和委托
- new T(...){...}:使用初始值設定項的對象創建
- new {...}:匿名對象初始值設定項
- new T[...]:數組創建
- typeof(T):獲取?T?的?Type?對象
- checked(x):在已檢查的上下文中計算表達式
- unchecked(x):在未檢查的上下文中計算表達式
- default(T):獲取類型為?T?的默認值
- delegate {...}:匿名函數(匿名方法)
- 一元
- +x:標識
- -x:取反
- !x:邏輯取反
- ~x:按位取反
- ++x:前置遞增
- --x:前置遞減
- (T)x:將?x?顯式轉換成類型?T
- await x:異步等待?x?完成
- 乘法
- x * y:乘法
- x / y:除法
- x % y:求余
- 加法
- x + y:加法、字符串串聯、委托組合
- x – y:減法、委托刪除
- Shift
- x << y:左移位
- x >> y:右移位
- 關系和類型測試
- x < y:小于
- x > y:大于
- x <= y:小于或等于
- x >= y:大于或等于
- x is T:如果?x?是?T,返回?true;否則,返回?false
- x as T:返回類型為?T?的?x;如果?x?的類型不是?T,返回?null
- 相等
- x == y:等于
- x != y:不等于
- 邏輯“與”
- x & y:整數型位AND,布爾型邏輯 AND
- 邏輯 XOR
- x ^ y:整數型位 XOR,布爾型邏輯 XOR
- 邏輯“或”
- x | y:整數型位 OR,布爾型邏輯 OR
- 條件“與”
- x && y:僅當?x?不是?false?時,才計算?y
- 條件“或”
- x || y:僅當?x?不是?true?時,才計算?y
- null 合并
- x ?? y:如果?x?為 null,計算結果為?y;否則,計算結果為?x
- 條件運算
- x ? y : z:如果?x?為?true,計算?y;如果?x?為?false,計算?z
- 賦值或匿名函數
- x = y:賦值
- x op= y:復合賦值;支持以下運算符
- *=?/=?%=?+=?-=?<<=?>>=?&=?^=?|=
- (T x) => y:匿名函數(lambda 表達式)
轉載于:https://www.cnblogs.com/lzfsuifeng/p/9109164.html
總結
以上是生活随笔為你收集整理的C#指南,重温基础,展望远方!(4)表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决ccSvcHst.exe CPU占用
- 下一篇: BZOJ1566 [NOI2009]管道