C# 的 namespace
namespace 關鍵字用於聲明包含一組相關對象的作用域。可以使用命名空間來組織代碼元素並創建全局唯一類型。 namespace SampleNamespace { class SampleClass { } interface ISampleInterface { } struct SampleStruct { } enum SampleEnum { a,
namespace 關鍵字用於聲明包含一組相關對象的作用域。可以使用命名空間來組織代碼元素並創建全局唯一類型。 namespace SampleNamespace { class SampleClass { } interface ISampleInterface { } struct SampleStruct { } enum SampleEnum { a,
from 子句 查詢表達式必須以 from 子句開頭。此外,查詢表達式可包含也以 from 子句開頭的子查詢。from 子句指定下列各項: 將在其上運行查詢或子查詢的數據源。 表示源序列中每個元素的本地範圍變量。 範圍變量和數據源已強類型化。from 子句中引用的數據源必須具有 IEnumerable、IEnumerable T 類型之一,或 IQueryable T 等派生類型。
C# 提供了許多運算符。 其中許多都受到內置類型的支持,可用於對這些類型的值執行基本操作。這些運算符包括以下組: 算術運算符,將對數值操作數執行算術運算 比較運算符,將比較數值操作數 布爾邏輯運算符,將對 bool 操作數執行邏輯運算 位運算符和移位運算符,將對整數類型的操作數執行位運算或移位運算 相等運算符,將檢查其操作數是否相等 通常可以重載這些運算符,也就是説,可以為用户定義類
C# 提供了一組整型和浮點數值類型。任何兩種數值類型之間都可以進行隱式或顯式轉換。顯式轉換必須使用強制轉換表達式來執行。 隱式數值轉換 下表顯示內置數值類型之間的預定義隱式轉換: From 到 sbyte short、int、long、float、double、decimal 或 nint byte short、ush
結構類型(或 struct type)是一種可封裝數據和相關功能的值類型。使用 struct 關鍵字定義結構類型: public struct JG座標 { public JG座標 ( double x , double y ) { X = x; Y = y; } public
你可以在 struct 的聲明中使用 ref 修飾符。ref struct 類型的實例是在堆棧上分配的,不能轉義到託管堆。為了確保這一點,編譯器將 ref struct 類型的使用限制如下: ref struct 不能是數組的元素類型。 ref struct 不能是類或非 ref struct 的字段的聲明類型。 ref struct 不能被 boxed 為 System . ValueT
元組功能提供了簡潔的語法來將多個數據元素分組成一個輕型數據結構。下面的示例演示瞭如何聲明元組變量、對它進行初始化並訪問其數據成員: double [ ] SJDs = [ 1.5 , 2.3 , 3.6 ]; ( double 和 , int 個數 ) = ( SJDs . Sum ( ) , SJDs . Length ); Console . WriteLine ( $"SJDs 的總和:{和
可為 null 值類型 T? 表示其基礎值類型 T 的所有值及額外的 null 值。例如,可以將以下三個值中的任意一個指定給 bool? 變量:true、false 或 null。基礎值類型 T 本身不能是可為 null 的值類型。 任何可為 null 的值類型都是泛型 System . Nullable T 結構的實例。可使用以下任何一種可互換形式引用具有基礎類型 T 的可為 null 值類
C# 程序的常規結構 C# 語言規範 C# 程序由一個或多個文件組成。每個文件都包含零個或多個命名空間。命名空間包含類、結構、接口、枚舉和委託或其他命名空間等類型。下面的示例是包含所有這些元素的 C# 程序的框架。 using System; Console . WriteLine ( "Hello world!" ); namespace YourNamespace {
C# 是一種強類型語言。每個變量和常量都有其類型,每個計算出結果為值的表達式也是如此。每個方法聲明都會指定每個輸入參數以及返回值的名稱、類型和類型(值類型、引用類型或輸出類型)。.NET 類庫定義了內置的數值類型和複雜類型,這些類型代表了各種各樣的結構。其中包括文件系統、網絡連接、對象的集合和數組以及日期。一個典型的 C# 程序會使用類庫中的類型以及用户自定義的類型,這些類型能夠模擬與程序所處理的
在 C# 中,類型(class、struct 或 record)的定義就像是一份藍圖,它規定了該類型能夠做什麼。對象基本上就是根據這份藍圖分配和配置的一塊內存。本文概述了這些藍圖及其特性。 封裝(Encapsulation) 封裝有時被稱為面向對象編程的第一大支柱或原則。class 或 struct 可以指定其每個成員對於類或結構體外部的代碼的可訪問性。對於不打算供類或程序集外部的使用者使用的成員
模式匹配是一種通過測試表達式來確定其是否具有特定特徵的技術。C# 的模式匹配提供了更簡潔的語法來測試表達式並根據表達式是否匹配採取相應行動。“is 表達式” 支持模式匹配以測試表達式,並根據該表達式的結果有條件地聲明一個新的變量。“switch 表達式” 允許您根據表達式的第一個匹配模式執行操作。這兩種表達式都支持豐富的模式詞彙。 本文概述了可以運用模式匹配的場景。這些技術能夠提升您代碼的可讀性和
C# 語言的異常處理功能可幫助你處理程序運行時發生的任何意外或異常情況。異常處理使用 try、catch 和 finally 關鍵字來嘗試可能不成功的操作,以便在您認為這樣做是合理時處理異常,並在完成後清理資源。公共語言運行時(CLR)、.NET 或第三方庫或應用程序代碼可以生成異常。異常是通過使用 throw 關鍵字創建的。 在許多情況下,異常可能不是由代碼直接調用的方法引發的,而是由調用堆棧中
標識符命名規則與規範 標識符是您為類型(class、interface、struct、delegate 或 enum)、成員、變量或命名空間所賦予的名稱。 命名規則 有效的標識符必須遵循以下規則。如果任何標識符不符合這些規則,C# 編譯器將會產生錯誤: 標識符必須以字母或下劃線(_)開頭。 標識符可以包含 Unicode 字母字符、十進制數字字符、Unicode 連接字符、Unicode 結
怎麼獲得命令行參數 傳遞給可執行文件的命令行參數可以在頂級語句中訪問,也可以通過 Main 函數的可選參數來獲取。這些參數以字符串數組的形式提供。數組中的每個元素代表一個參數。參數之間的空格會被去除。例如,考慮以下對一個虛構可執行文件的命令行調用: 命令行輸入 傳遞給主程序的字符串數組 executable.exe a b c "a", "b
創建 record 類型 記錄是基於值進行比較的類型。您可以將記錄定義為引用類型或值類型。如果 record 類型的定義完全相同,並且對於每個字段,兩個記錄中的值都相等,那麼這兩個 record 類型的變量就是相等的。如果 class 類型的兩個變量相等,則意味着所引用的對象屬於相同的 class 類型,並且這兩個變量分別指向同一個對象。基於值的比較意味着 record 類型可能還需要具備您可能希
語言集成查詢(LINQ)指的是基於將查詢功能直接整合到 C# 語言中而形成的一系列技術。傳統上,針對數據的查詢是以簡單的字符串形式表達的,且在編譯時沒有類型檢查,也沒有智能提示支持。此外,針對不同的數據源(如 SQL 數據庫、XML 文檔、各種 Web 服務等),您需要學習不同的查詢語言。而使用 LINQ 後,查詢就成為了一種與類、方法和事件同等重要的語言結構。 在編寫查詢語句時,LINQ 中最直