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