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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452486.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452486.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452486.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UPS開始嘗試“貨車+無人機”的投遞方式,不必再擔心快遞員離職了

繼亞馬遜“空中倉庫”&#xff0c;無人機送貨再現新形式。 作為世界上最大的快遞承運商與包裹遞送公司&#xff0c;UPS當然也沒有放過“送貨無人機”這一新穎業務。與亞馬遜推出“空中倉庫”的理念類似&#xff0c;UPS并沒有選擇讓無人機從倉庫直接起飛&#xff0c;而是將之與…

技術人員如何"正確"的浪費時間?

蘋果產品用戶要浪費時間&#xff0c;你就應該這樣做&#xff1a;買個有鎖的 iPhone &#xff0c;每天刷幾百次威鋒網等待越獄或解鎖&#xff0c;看到新 App 就安裝&#xff0c;程序提示更新立刻升級&#xff1b;有新的固件(哪怕是 β 版)就壓制不住升級的欲望&#xff1b;每次 …

Diango博客--10.交流的橋梁“評論功能”

文章目錄0.思路引導1.創建"評論"應用2.設計"評論"的數據庫模型3.注冊"評論"模型到 admin4.設計“評論”表單5.展示評論表單6.“評論”視圖函數7.綁定 URL8.向讀者發送是否“評論”成功的狀態9.詳情頁底部顯示“評論”內容0.思路引導 本文將創建…

python與android交互,Android客戶端與Python服務器端的簡單通信

最近在做一個APP&#xff0c;需要與服務器通信&#xff0c;一點一點的嘗試&#xff0c;記錄一下。本文使用了OkHttp和Flask框架。Android客戶端&#xff1a;實現功能輸入完點擊OK按鈕后會toast成功的信息。Python服務端&#xff1a;各部分代碼如下&#xff1a;activity_main.xm…

結構程序設計

結構程序設計經典定義&#xff1a;如果一個程序的代碼塊僅僅通過順序、選擇和循環這3種基本控制結構進行連接&#xff0c;并且每個代碼塊只有一個入口和一個出口&#xff0c;則稱這個程序是結構化的。 結構程序設計更全面的定義&#xff1a;結構程序設計是盡可能少用GO TO語句…

Sql Server 開窗函數Over()的使用

利用over()&#xff0c;將統計信息計算出來&#xff0c;然后直接篩選結果集1 declare t table(2 ProductID int,3 ProductName varchar(20),4 ProductType varchar(20),5 Price int)6 7 insert t8 select 1,name1,P1,3 union all9 select 2,name2,P1,5 union all 10 select 3,…

云棲科技評論第48期:前沿科技對世界的改造 我們這代人只完成了1%

1、數字經濟版圖呈中美雙分趨勢 日本IT行業為前景擔憂 數字經濟版圖呈中美雙分趨勢 日本IT行業為前景擔憂 【新聞摘要】《日本經濟新聞》日前刊文稱&#xff0c;數字經濟的勢力版圖呈現中國和美國兩強雙分的趨勢明顯&#xff0c;這意味著日本可能不得不使用中美的技術&#xff…

程序員犯的非技術錯誤(Top 5)

對于程序開發者來說&#xff0c;有兩種技術需要我們掌握&#xff0c;一個是技術上的能力&#xff0c;另一個是非技術上的能力。不幸的是&#xff0c;許多程序員過多地關注了技術上的能力&#xff0c;而忽略了非技術上的能力的培養&#xff0c;因此&#xff0c;我們的程序員們經…

CentOS下添加Root權限用戶‘超級用戶’方法(xxx is not in the sudoers file.This incident will be reported.的解決方法)

文章目錄1.添加普通用戶2.添加sudo文件的寫權限3.編輯sudoers文件4.撤銷sudoers文件寫權限1.添加普通用戶 [rootserver ~]# useradd fxd //添加一個名為fxd的用戶 [rootserver ~]# passwd fxd //修改密碼 Changing password for user chenjiafa. New UNIX password: //在這里輸…

android打印intent flag,Android flag詳解

Android flag詳解Android flag詳解一.Flag標志位在閱讀源碼的時候經常發現有一些標志屬性使用一些位操作來判斷是否具有該標志&#xff0c;增加標志或者去除標志。如&#xff1a;二.addFlags (int flags)和setFlags (int flags)區別Public Intent addFlags (int flags)增加額外…

人機界面設計

1.系統響應時間 系統響應時間指從用戶完成某個控制動作(例如&#xff0c;按回車鍵或單擊鼠標)&#xff0c;到軟件給出預期的響應(輸出信息或做動作)之間的這段時間。 系統響應時間有兩個重要屬性&#xff0c;分別是長度和易變性。 1&#xff09;長度&#xff1a;時間過長&#…

GeoHash資料

geohash基本原理 轉載于:https://www.cnblogs.com/hyl8218/p/9111410.html

開啟市場新格局 且看新華三計算與存儲新品發布會

全球領先的新IT解決方案領導者新華三將于8月31日在北京釣魚臺國賓館舉辦“新IT 新動能 新格局 新華三下一代計算與存儲發布會”&#xff0c;重磅發布服務器和存儲的全線新品。 2017年初&#xff0c;新華三集團正式推出了“應用驅動 云領未來”的新IT戰略。在這一戰略指引下&…

Centos7更新 SQLite3至版本3.29.0

文章目錄1.創建 src 目錄并進到這個目錄2.下載 sqlite3 源碼并解壓安裝3.替換系統低版本 sqlite31.創建 src 目錄并進到這個目錄 fxd用戶下&#xff1a; mkdir -p ~/src cd ~/src 2.下載 sqlite3 源碼并解壓安裝 fxd用戶下&#xff1a; wget https://sqlite.org/2019/sqlite…

開發人員必學的5門課程

越來越多的Web開發人員通常都會問一些同樣的問題。比如&#xff1a;哪一種開發語言最重要&#xff1f;初級開發人員的薪金會是多少&#xff1f;公司提供的免費培訓有用嗎&#xff1f;如何評估一個新的項目&#xff1f;盡管這些問題都很重要&#xff0c;但是開發人員往往對其他人…

android 響應類型,android – Retrofit 2 RxJava – Gson – “全局”反序列化,更改響應類型...

正如Than所說,使用攔截器的解決方案并不是那么好.我已經設法用一個Rx變壓器來解決這個問題.我還添加了自定義api異常,當出現問題時我可以拋出它并在onError中輕松處理它.我認為它更強大.響應包裝器&#xff1a;public class ApiResponse {private boolean success;private T da…

龜兔賽跑問題

題目 烏龜與兔子進行賽跑&#xff0c;跑場是一個矩型跑道&#xff0c;跑道邊可以隨地進行休息。烏龜每分鐘可以前進3米&#xff0c;兔子每分鐘前進9米&#xff1b;兔子嫌烏龜跑得慢&#xff0c;覺得肯定能跑贏烏龜&#xff0c;于是&#xff0c;每跑10分鐘回頭看一下烏龜&#x…

過程設計的工具

描述程序處理過程的工具稱為過程設計工具&#xff0c;它可以分為圖形、表格和語言3類。不論是那類工具&#xff0c;對他們的基本要求都是提供對設計 無歧義的描述&#xff0c;也就是應該能夠指明控制流程、處理功能、數據組織以及其他方面的實現細節。從而在編碼階段能夠把對應…

Centos7中安裝python3.7、pip3以及pipenv(親測有效)

文章目錄1.安裝python3.7以及pip32.使用pip3安裝pipenv時pip報錯3.使用pip3安裝pipenv時出現ReadTimeoutError4.查看pipenv版本報錯1.安裝python3.7以及pip3 1)首先來安裝依賴 yum -y install gcc gcc-c yum -y groupinstall “Development tools” yum install openssl-deve…

成功人士都是這樣逼出來的

研究過很多很多成功人士的成才之路&#xff0c;發現這些人和我們普通人其實沒有什么區別&#xff0c;不過&#xff0c;這些人用老祖宗的話說是“天將降大任于斯人也&#xff0c;必將苦其心志&#xff0c;勞其筋骨&#xff0c;餓其體膚&#xff0c;空乏其身&#xff0c;所以動心…