C#學習基本概念(3000)---表達式

表達式:數據庫

「表達式」是由一個或多個操做數以及零個或零個以上的運算符所組成的序列,能夠經過計算獲得一個值、對象、方法或命名空間等結果。  表達式能夠包含文本值方法調用運算符及其操做數,或簡單名稱。  簡單名稱能夠是變量類型成員方法參數命名空間或類型的名稱。數據結構

表達式能夠使用運算符,而運算符又能夠將其餘表達式用做參數,或者使用方法調用,而方法調用的參數又能夠是其他方法調用,所以表達式既能夠很是簡單,也能夠很是複雜。  下面是表達式的兩個示例:ide

((x < 10) && ( x > 5)) || ((x > 20) && (x < 25))   
System.Convert.ToInt32("35")

表達式值spa

在大部分使用表達式的上下文中,例如在語句或方法參數中,表達式應計算爲某個值。  若是 x 和 y 是整數,表達式 x + y 將計算爲一個數值。  表達式 new MyClass() 計算爲對 MyClass 對象的新實例的引用。  表達式 myClass.ToString() 計算爲一個字符串,由於字符串是該方法的返回類型。  然而,雖然命名空間名稱歸類爲表達式,但它不計算爲值,所以永遠不能做爲任何表達式的最終結果。  命名空間名稱不能傳遞給方法參數,不能用在新表達式中,也不能賦值給變量。  命名空間名稱只能用做較大表達式的子表達式。   一樣如此的還有類型(與 System.Type 對象不一樣)、方法組名稱(與特定方法不一樣)以及事件 addremove 訪問器。code

每一個值都有關聯的類型。  例如,若是 x 和 y 都是 int 類型的變量,則表達式 x + y 的值的類型也是 int。  若是將該值賦給不一樣類型的變量,或者若是 x 和 y 是不一樣的類型,則應用類型轉換規則。  有關如何進行這種轉換的更多信息,請參見強制轉換和類型轉換對象

溢出索引

若是值大於值類型的最大值,數值表達式可能致使溢出。  有關更多信息,請參見Checked 和 Unchecked顯式數值轉換表事件

運算符的優先級和結合性內存

計算表達式的方式由結合性和運算符優先級控制。  有關更多信息,請參見 運算符rem

除賦值表達式和方法調用表達式以外,大部分表達式都必須嵌在語句中。  有關更多信息,請參見 語句

文本和簡單名稱

最簡單的兩種表達式類型是文本和簡單名稱。  文本是沒有名稱的常數值。  例如,在下面的代碼示例中,5"Hello World" 都是文本值:

   // Expression statements.
            int i = 5;            
            string s = "Hello World";

在上面的示例中,is 都是用於標識局部變量的簡單名稱。  在表達式中使用這些變量時,變量名稱計算爲當前在該變量的內存位置所存儲的值。  下面的示例演示了這種狀況:

            int num = 5;
            System.Console.WriteLine(num); // Output: 5
            num = 6;
            System.Console.WriteLine(num); // Output: 6

調用表達式

在下面的代碼示例中,對 DoWork 的調用是一個調用表達式。

DoWork();

方法調用要求使用方法的名稱(如前面的示例中那樣做爲名稱,或做爲其餘表達式的結果),後跟括號和任意方法參數。  有關更多信息,請參見 方法。  委託調用使用委託的名稱和括號內的方法參數。  有關更多信息,請參見 委託。  若是方法返回值,則方法調用和委託調用的計算結果爲該方法的返回值。  返回 void 的方法不能替表明達式中的值。


查詢表達式

有關常規表達式的規則一樣適用於查詢表達式。  有關更多信息,請參見 LINQ 查詢表達式


Lambda 表達式

Lambda 表達式表示沒有名稱但能夠具備輸入參數和多個語句的「內聯方法」。  它們在 LINQ 中普遍用於向方法傳遞參數。  Lambda 表達式被編譯爲委託或表達式樹,具體取決於使用它們的上下文。  有關更多信息,請參見 Lambda 表達式

表達式樹

使用表達式樹能夠將表達式表示爲數據結構。  表達式樹由 LINQ 提供程序普遍使用,用來將查詢表達式轉換爲在其餘某個上下文(如 SQL 數據庫)中有意義的代碼。  有關更多信息,請參見表達式樹

備註

只要從表達式中識別到變量、對象屬性或對象索引器訪問,該項的值都會用做表達式的值。  在 C# 中,只要表達式的最終計算結果是所需的類型,表達式就能夠放置在任何須要值或對象的位置。



備註:轉自:https://msdn.microsoft.com/zh-cn/library/ms173144.aspx

相關文章
相關標籤/搜索