" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#類型系統(tǒng)從7.0到14.0的發(fā)展歷程和版本特性

 更新時間:2025年10月03日 11:31:59   作者:AI·NET極客圈  
C#類型系統(tǒng)從7.0到14.0的演進(jìn)顯著提升了性能、類型安全性和開發(fā)效率,版本迭代中,值類型優(yōu)化(如Span、記錄結(jié)構(gòu))顯著降低GC壓力,而可空引用和必需成員等特性增強了編譯時驗證,C# 14的field關(guān)鍵字和隱式span轉(zhuǎn)換進(jìn)一步減少了高性能場景的樣板代碼

C# 是一種由 Microsoft 開發(fā)的面向?qū)ο蟮木幊陶Z言,它最初于 2000 年發(fā)布,并在隨后的版本中不斷更新和改進(jìn)。自C# 7.0以來,C#語言在類型系統(tǒng)方面引入了眾多新數(shù)據(jù)類型、類型構(gòu)造和語言特性,以提升性能、類型安全性和開發(fā)效率。本文全面整理了從C# 7.0到C# 14.0(截至2025年4月,C# 14.0為預(yù)覽版)類型系統(tǒng)的新增內(nèi)容,包括值元組、Span<T>、ReadOnlySpan<T>、Memory<T>、ReadOnlyMemory<T>、可空引用類型、記錄、本機(jī)大小整數(shù)、記錄結(jié)構(gòu)、內(nèi)聯(lián)數(shù)組,以及其他增強(如只讀結(jié)構(gòu)、泛型數(shù)學(xué)支持)。

版本概覽

以下是C# 7.0至C# 14.0中類型系統(tǒng)新增或增強的主要內(nèi)容:

C# 版本新增/增強內(nèi)容發(fā)布年份描述
7.0值元組(Value Tuples)2017輕量級數(shù)據(jù)結(jié)構(gòu),支持多值返回和解構(gòu)
7.2Span, ReadOnlySpan, 只讀結(jié)構(gòu), 引用結(jié)構(gòu)2017高性能內(nèi)存操作和不可變/棧分配結(jié)構(gòu)體
8.0可空引用類型, Memory, ReadOnlyMemory2019空值安全性和托管內(nèi)存塊
9.0記錄, 本機(jī)大小整數(shù), 初始化器專用類型2020值語義引用類型、本機(jī)整數(shù)和不可變屬性
10.0記錄結(jié)構(gòu), 全局 using 指令2021值類型記錄和簡化類型引用
11.0必需成員, 泛型數(shù)學(xué)支持, 文件局部類型2022強制初始化、泛型運算和類型作用域限制
12.0內(nèi)聯(lián)數(shù)組2023固定大小數(shù)組結(jié)構(gòu),優(yōu)化性能
13.0參數(shù)集合擴(kuò)展, 引用結(jié)構(gòu)接口支持, 部分屬性2024擴(kuò)展params、ref struct接口和部分屬性定義
14.0field 關(guān)鍵字, 隱式 span 轉(zhuǎn)換, nameof 增強, lambda 參數(shù)修飾符, partial 成員擴(kuò)展, 空條件賦值2025增強屬性訪問、span 使用、泛型處理、lambda 表達(dá)、partial 類型和空值處理

以下按版本逐一詳述,每節(jié)包含特性表格、代碼示例和分析。

C# 7.0:值元組

特性表格

類型/構(gòu)造描述主要用途注意事項
值元組 (Value Tuples)輕量級值類型,支持多值返回、命名元素和解構(gòu)方法返回多個值、臨時數(shù)據(jù)分組值類型,棧分配;.NET Framework需引用System.ValueTuple包

概述

值元組基于System.ValueTuple,允許方法返回多個值,支持命名元素和解構(gòu),簡化數(shù)據(jù)傳遞。

語法

聲明:(type1, type2, ...) tupleName = (value1, value2, ...);

命名元素:(type1 name1, type2 name2, ...) tupleName = (value1, value2, ...);

解構(gòu):var (var1, var2, ...) = tupleName;

示例代碼

public(intid,stringname)GetPerson(){return(1,"Alice");}varperson=GetPerson();Console.WriteLine($"ID:{person.id},Name:{person.name}");//解構(gòu)var(id,name)=GetPerson();Console.WriteLine($"ID:{id},Name:{name}");

適用場景

方法返回多個相關(guān)值。

臨時數(shù)據(jù)分組,無需定義類或結(jié)構(gòu)。

解構(gòu)賦值,簡化代碼。

注意事項

值類型,適合輕量數(shù)據(jù)。

.NET Framework項目需引用System.ValueTuple NuGet包。

C# 7.2:Span, ReadOnlySpan, 只讀結(jié)構(gòu), 引用結(jié)構(gòu)

特性表格

類型/構(gòu)造描述主要用途注意事項
Span表示連續(xù)內(nèi)存塊的引用,支持讀寫高性能數(shù)組/內(nèi)存操作ref struct,棧分配,生命周期限制
ReadOnlySpan只讀連續(xù)內(nèi)存塊引用高性能只讀操作同上,需確保內(nèi)存邊界安全
只讀結(jié)構(gòu) (readonly struct)不可變結(jié)構(gòu)體,優(yōu)化性能不可變數(shù)據(jù)結(jié)構(gòu)所有實例字段必須只讀
引用結(jié)構(gòu) (ref struct)棧分配結(jié)構(gòu)體高性能內(nèi)存管理不可boxing或作為接口實現(xiàn)

概述

Span<T>ReadOnlySpan<T>是高性能值類型,表示連續(xù)內(nèi)存塊引用,適合數(shù)組和本機(jī)內(nèi)存操作。readonly struct確保結(jié)構(gòu)體不可變,ref struct限制為棧分配,支持Span<T>等類型。

語法

Span: Span<T> span = collection.AsSpan();

ReadOnlySpan: ReadOnlySpan<T> readOnlySpan = collection.AsSpan();

只讀結(jié)構(gòu): readonly struct StructName { ... }

引用結(jié)構(gòu): ref struct StructName { ... }

示例代碼

//Span<T>和ReadOnlySpan<T>int[]numbers=[1,2,3,4,5];Span<int>span =numbers.AsSpan(1,3);span[0]=10;Console.WriteLine(string.Join(",",span.ToArray()));//10,3,4ReadOnlySpan<char>text="Hello".AsSpan();Console.WriteLine(text.Slice(0,2).ToString());//He//只讀結(jié)構(gòu)readonlystructPoint{publicintX{get;init;}publicintY{get;init;}}Pointpoint=new(){X=1,Y=2};Console.WriteLine($"({point.X},{point.Y})");//(1,2)//引用結(jié)構(gòu)refstructBuffer{publicSpan<int>Data;publicBuffer(Span<int>data)=>Data=data;}Bufferbuffer=new(numbers.AsSpan());buffer.Data[0]=10;Console.WriteLine(numbers[0]);//10

適用場景

高性能字符串解析、緩沖區(qū)處理。

不可變數(shù)據(jù)結(jié)構(gòu)(只讀結(jié)構(gòu))。

避免堆分配(引用結(jié)構(gòu))。

注意事項

Span<T>ReadOnlySpan<T>不可用于異步方法。

ref struct限制嚴(yán)格,需管理生命周期。

C# 8.0:可空引用類型, Memory, ReadOnlyMemory

特性表格

類型/構(gòu)造描述主要用途注意事項
可空引用類型引用類型可標(biāo)記為可空,默認(rèn)非null增強空值安全性需啟用可空上下文,處理編譯器警告
Memory托管內(nèi)存塊,支持讀寫異步和高性能內(nèi)存操作適合異步場景,需管理生命周期
ReadOnlyMemory只讀托管內(nèi)存塊只讀異步內(nèi)存操作同上

概述

可空引用類型通過?后綴指定引用類型是否可為null,減少空引用異常。Memory<T>ReadOnlyMemory<T>表示托管內(nèi)存塊,支持異步場景。

語法

可空引用類型: string? nullable; string nonNullable;

Memory: Memory<T> memory = collection.AsMemory();

ReadOnlyMemory: ReadOnlyMemory<T> readOnlyMemory = collection.AsMemory();

示例代碼

//可空引用類型#nullableenablestringnonNullable="Hello";string?nullable=null;if(nullable!=null){Console.WriteLine(nullable.Length);}//Memory<T>和ReadOnlyMemory<T>int[]numbers=[1,2,3,4,5];Memory<int>memory=numbers.AsMemory(1,3);Span<int>span =memory.Span;span[0]=10;Console.WriteLine(string.Join(",",memory.ToArray()));//10,3,4ReadOnlyMemory<char>text="Hello".AsMemory();Console.WriteLine(text.Slice(0,2).Span.ToString());//He

適用場景

增強空值安全性(可空引用類型)。

異步內(nèi)存操作(Memory)。

只讀數(shù)據(jù)傳遞(ReadOnlyMemory)。

注意事項

可空引用類型需顯式啟用。

Memory生命周期需管理。

C# 9.0:記錄, 本機(jī)大小整數(shù), 初始化器專用類型

特性表格

類型/構(gòu)造描述主要用途注意事項
記錄 (Records)具有值語義的引用類型,默認(rèn)不可變數(shù)據(jù)建模,值相等性默認(rèn)不可變,可添加可變行為
本機(jī)大小整數(shù) (nint, nuint)本機(jī)大小整數(shù),映射IntPtr/UIntPtr本機(jī)代碼互操作平臺依賴,需考慮兼容性
初始化器專用類型 (init-only setters)初始化后不可變屬性不可變數(shù)據(jù)模型僅初始化時可賦值

概述

記錄是具有值語義的引用類型,自動實現(xiàn)相等性。nintnuint支持本機(jī)大小整數(shù)。init修飾符增強屬性不可變性。

語法

記錄: public record ClassName(type1 Property1, ...);

本機(jī)大小整數(shù): nint nativeInt; nuint nativeUInt;

init-only: public type Property { get; init; }

示例代碼

//記錄publicrecordPerson(stringFirstName,stringLastName);varperson1=newPerson("Alice","Smith");varperson2=newPerson("Alice","Smith");Console.WriteLine(person1==person2);//Truevarperson3=person1with{LastName="Johnson"};Console.WriteLine(person3);//Person{FirstName=Alice,LastName=Johnson}//本機(jī)大小整數(shù)nintnativeInt=42;nuintnativeUInt=42u;Console.WriteLine($"Nativeint:{nativeInt},Nativeuint:{nativeUInt}");//初始化器專用類型publicclassStudent{publicstringName{get;init;}}varstudent=newStudent{Name="Alice"};Console.WriteLine(student.Name);//Alice

適用場景

數(shù)據(jù)傳輸對象(記錄)。

本機(jī)代碼互操作(nint, nuint)。

不可變數(shù)據(jù)模型(init-only)。

注意事項

記錄支持繼承,需保持值語義。

本機(jī)大小整數(shù)平臺依賴。

C# 10.0:記錄結(jié)構(gòu), 全局 using 指令

特性表格

類型/構(gòu)造描述主要用途注意事項
記錄結(jié)構(gòu) (Record Structs)值類型的記錄,結(jié)合值語義和性能小型數(shù)據(jù)結(jié)構(gòu)值類型,復(fù)制成本需考慮
全局 using 指令全局導(dǎo)入命名空間簡化類型引用需平衡代碼可讀性

概述

記錄結(jié)構(gòu)將記錄特性擴(kuò)展到值類型,結(jié)合值語義和性能。全局using簡化類型引用。

語法

記錄結(jié)構(gòu): public record struct StructName(type1 Property1, ...);

全局 using: global using System;

示例代碼

//記錄結(jié)構(gòu)publicrecordstructPoint(intX,intY);varpoint1=newPoint(1,2);varpoint2=newPoint(1,2);Console.WriteLine(point1==point2);//Truevarpoint3=point1with{X=3};Console.WriteLine(point3);//Point{X=3,Y=2}//全局using(假設(shè)已在文件頂部)Console.WriteLine("Hello,World!");//無需顯式usingSystem

適用場景

值類型數(shù)據(jù)建模(記錄結(jié)構(gòu))。

大型項目命名空間管理(全局 using)。

注意事項

記錄結(jié)構(gòu)復(fù)制成本需關(guān)注。

全局 using 需謹(jǐn)慎使用。

C# 11.0:必需成員, 泛型數(shù)學(xué)支持, 文件局部類型

特性表格

類型/構(gòu)造描述主要用途注意事項
必需成員 (required members)強制成員初始化確保關(guān)鍵字段初始化需配合初始化器或構(gòu)造函數(shù)
泛型數(shù)學(xué)支持靜態(tài)抽象接口成員支持泛型運算泛型算法庫需運行時支持(.NET 7+)
文件局部類型 (file modifier)限制類型作用域至文件隔離輔助類型僅限文件作用域

概述

required修飾符強制成員初始化。泛型數(shù)學(xué)支持通過接口實現(xiàn)數(shù)值運算。file修飾符限制類型作用域。

語法

必需成員: public required type Property { get; set; }

泛型數(shù)學(xué): interface INumber<T> { static abstract T operator +(T, T); }

文件局部類型: file class ClassName { ... }

示例代碼

//必需成員publicclassPerson{publicrequiredstringName{get;set;}}varperson=newPerson{Name="Alice"};Console.WriteLine(person.Name);//Alice//泛型數(shù)學(xué)支持publicinterfaceINumber<T>whereT:INumber<T>{staticabstractTAdd(Tleft,Tright);}publicreadonlystructMyNumber:INumber<MyNumber>{publicintValue{get;init;}publicMyNumber(intvalue)=>Value=value;publicstaticMyNumberAdd(MyNumberleft,MyNumberright)=>new(left.Value+right.Value);}MyNumbera=new(1);MyNumberb=new(2);varresult=MyNumber.Add(a,b);Console.WriteLine(result.Value);//3//文件局部類型fileclassHelper{publicstaticvoidLog(stringmessage)=>Console.WriteLine(message);}Helper.Log("Test");

適用場景

API 設(shè)計(必需成員)。

泛型數(shù)值計算(泛型數(shù)學(xué))。

代碼生成(文件局部類型)。

注意事項

必需成員需明確初始化。

泛型數(shù)學(xué)需運行時支持。

C# 12.0:內(nèi)聯(lián)數(shù)組

特性表格

類型/構(gòu)造描述主要用途注意事項
內(nèi)聯(lián)數(shù)組 (Inline Arrays)固定大小數(shù)組結(jié)構(gòu),棧分配高性能固定大小數(shù)組固定大小,僅限結(jié)構(gòu)體內(nèi)

概述

內(nèi)聯(lián)數(shù)組通過[InlineArray]特性定義固定大小數(shù)組結(jié)構(gòu),優(yōu)化性能。

語法

[InlineArray(length)]publicstructStructName{privateelementType_element0;}

示例代碼

[InlineArray(10)]publicstructBuffer{privateint_element0;}Bufferbuffer=new();buffer[0]=1;buffer[9]=10;Console.WriteLine(buffer[0]);//1

適用場景

高性能計算。

替代不安全固定緩沖區(qū)。

注意事項

固定大小,運行時不可調(diào)整。

C# 13.0:參數(shù)集合擴(kuò)展, 引用結(jié)構(gòu)接口支持, 部分屬性

特性表格

類型/構(gòu)造描述主要用途注意事項
參數(shù)集合擴(kuò)展 (params Span等)擴(kuò)展params支持Span等高性能參數(shù)傳遞需確保Span生命周期
引用結(jié)構(gòu)接口支持允許ref struct實現(xiàn)接口擴(kuò)展ref struct能力仍受ref struct限制
部分屬性 (partial properties)支持partial類型部分屬性代碼生成需確保定義一致

概述

參數(shù)集合擴(kuò)展支持Span<T>等類型。ref struct可實現(xiàn)接口。部分屬性支持分文件定義。

語法

參數(shù)集合: void Method(params Span<T> spans);

引用結(jié)構(gòu)接口: ref struct StructName : IInterface { ... }

部分屬性: public partial type Property { get; set; }

示例代碼

//參數(shù)集合擴(kuò)展publicvoidProcess(paramsSpan<int>spans){foreach(varspan inspans)Console.WriteLine(string.Join(",",span.ToArray()));}int[]numbers=[1,2,3];Process(numbers.AsSpan(0,2),numbers.AsSpan(2,1));//1,2和3//引用結(jié)構(gòu)接口支持publicinterfaceIBuffer{voidProcess();}refstructBuffer:IBuffer{publicSpan<int>Data;publicBuffer(Span<int>data)=>Data=data;publicvoidProcess()=>Data[0]=10;}Bufferbuffer=new(numbers.AsSpan());buffer.Process();Console.WriteLine(numbers[0]);//10//部分屬性publicpartialclassPerson{publicpartialstringName{get;set;}}publicpartialclassPerson{publicpartialstringName{get=>_name;set=>_name=value;}privatestring_name;}varperson=newPerson{Name="Alice"};Console.WriteLine(person.Name);//Alice

適用場景

高性能參數(shù)傳遞(參數(shù)集合)。

擴(kuò)展ref struct(接口支持)。

代碼生成(部分屬性)。

注意事項

參數(shù)集合需管理Span生命周期。

部分屬性需確保一致性。

C# 14.0:field 關(guān)鍵字, 隱式 span 轉(zhuǎn)換, nameof 增強, lambda 參數(shù)修飾符, partial 成員擴(kuò)展, 空條件賦值

特性表格

類型/構(gòu)造描述主要用途注意事項
field 關(guān)鍵字允許在屬性訪問器中直接訪問 backing field簡化屬性實現(xiàn)可能與現(xiàn)有字段名沖突,需使用 @fieldthis.field 區(qū)分
隱式 span 轉(zhuǎn)換支持 Span<T>、ReadOnlySpan<T> 與數(shù)組間的隱式轉(zhuǎn)換更自然地使用 span 類型需注意 span 的生命周期
nameof 支持未綁定泛型允許 nameof 使用未綁定泛型類型,如 nameof(List<>)泛型編程中的類型名稱獲取-
lambda 參數(shù)修飾符允許 lambda 參數(shù)使用 ref、out 等修飾符,無需指定類型增強 lambda 表達(dá)式的靈活性params 仍需指定類型
partial 構(gòu)造函數(shù)和事件擴(kuò)展 partial 成員到實例構(gòu)造函數(shù)和事件分離定義和實現(xiàn),適合代碼生成需確保 defining 和 implementing 聲明一致
空條件賦值允許在賦值左側(cè)使用 ?.?[],僅在左側(cè)非 null 時賦值簡化 null 檢查不支持 ++--

概述

C# 14.0(預(yù)計2025年隨.NET 10發(fā)布,截至2025年4月為預(yù)覽版)引入了一系列語言特性,旨在提高開發(fā)效率和代碼可讀性,包括 field 關(guān)鍵字、隱式 span 轉(zhuǎn)換、nameof 增強、lambda 參數(shù)修飾符、partial 成員擴(kuò)展和空條件賦值。雖然未引入全新數(shù)據(jù)類型,但這些特性顯著增強了現(xiàn)有類型的用法。

field 關(guān)鍵字概述

field 關(guān)鍵字允許在屬性訪問器中直接訪問編譯器生成的 backing field,無需顯式聲明。

示例代碼

publicclassPerson{publicstringName{get=>field;set=>field=value?.Trim();}}varperson=newPerson{Name="Alice"};Console.WriteLine(person.Name);//Alice

適用場景

簡化屬性實現(xiàn),特別是需要對 setter 進(jìn)行處理時。

注意事項

如果類中已有名為 field 的字段,需使用 @fieldthis.field 區(qū)分。

作為C# 13.0的預(yù)覽特性,C# 14.0正式支持,詳見field 關(guān)鍵字。

隱式 span 轉(zhuǎn)換概述

C# 14.0 為 Span<T>ReadOnlySpan<T> 提供了與數(shù)組的隱式轉(zhuǎn)換,使其使用更加自然。

示例代碼

Span<int>span =newint[]{1,2,3};int[]array=span.ToArray();Console.WriteLine(string.Join(",",array));//1,2,3

適用場景

高性能場景中,減少顯式轉(zhuǎn)換。

與數(shù)組和 span 類型交互。

注意事項

需確保 span 的生命周期管理,詳見Span 轉(zhuǎn)換。

nameof 支持未綁定泛型概述

允許 nameof 操作符使用未綁定泛型類型。

示例代碼

stringlistName=nameof(List<>);Console.WriteLine(listName);//List

適用場景

泛型編程中,獲取類型名稱。

注意事項

簡單但強大的增強,適合反射場景。

lambda 參數(shù)修飾符概述

允許在 lambda 表達(dá)式中為參數(shù)添加修飾符,如 ref、out 等,無需指定類型。

示例代碼

varincrement=(refintx)=>x++;intnum=5;increment(refnum);Console.WriteLine(num);//6

適用場景

需要在 lambda 中修改外部變量。

注意事項

params 仍需指定類型,詳見lambda 表達(dá)式。

partial 構(gòu)造函數(shù)和事件概述

擴(kuò)展 partial 成員到實例構(gòu)造函數(shù)和事件,允許在 partial 類型中分離定義和實現(xiàn)。

示例代碼

//File1.cspublicpartialclassMyClass{publicpartialMyClass(intx);publicpartialeventEventHandlerMyEvent;}//File2.cspublicpartialclassMyClass{publicpartialMyClass(intx){}publicpartialeventEventHandlerMyEvent;}

適用場景

代碼生成場景,如 UI 設(shè)計器。

注意事項

需確保 defining 和 implementing 聲明一致,詳見partial 成員。

空條件賦值概述

允許在賦值語句的左側(cè)使用 ?.?[],僅當(dāng)左側(cè)非 null 時執(zhí)行賦值。

示例代碼

string?text=null;text?.Length=5;//不執(zhí)行賦值List<int>?list=null;list?[0]=10;//不執(zhí)行賦值list=newList<int>{0};list?[0]=10;//執(zhí)行賦值,list[0]=10Console.WriteLine(list[0]);//10

適用場景

簡化 null 檢查,避免 NullReferenceException。

注意事項

不支持 ++-- 操作,詳見空條件賦值。

結(jié)語

C# 7.0至C# 14.0的類型系統(tǒng)新增內(nèi)容涵蓋了值元組、Span、ReadOnlySpan、Memory、ReadOnlyMemory、可空引用類型、記錄、本機(jī)大小整數(shù)、記錄結(jié)構(gòu)、內(nèi)聯(lián)數(shù)組等數(shù)據(jù)類型,以及只讀結(jié)構(gòu)、引用結(jié)構(gòu)、必需成員、泛型數(shù)學(xué)支持等增強。C# 14.0通過field關(guān)鍵字、隱式 span 轉(zhuǎn)換等特性進(jìn)一步優(yōu)化了現(xiàn)有類型的用法。這些特性滿足了從高性能內(nèi)存管理到類型安全建模的多種需求。資深C#工程師可根據(jù)場景選擇類型,如使用Span優(yōu)化性能,記錄建模數(shù)據(jù)。由于C# 14.0尚在預(yù)覽階段,建議關(guān)注dotnet/roslyn以獲取最新更新。

到此這篇關(guān)于C#類型系統(tǒng)從7.0到14.0的發(fā)展歷程和版本特性的文章就介紹到這了,更多相關(guān)C#高性能開發(fā)之類型系統(tǒng):從 C# 7.0 到 C# 14 的類型系統(tǒng)演進(jìn)全景內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#調(diào)用windows api關(guān)機(jī)(關(guān)機(jī)api)示例代碼分享

    C#調(diào)用windows api關(guān)機(jī)(關(guān)機(jī)api)示例代碼分享

    本文主要介紹了C#調(diào)用windows api關(guān)機(jī)的示例代碼,大家參考使用吧
    2014-01-01
  • 詳解C#設(shè)計模式編程中生成器模式的使用

    詳解C#設(shè)計模式編程中生成器模式的使用

    這篇文章主要介紹了詳解C#設(shè)計模式編程中生成器模式的使用,生成器模式主張創(chuàng)建對象的過程和對象的表現(xiàn)應(yīng)該分離開來,需要的朋友可以參考下
    2016-02-02
  • C語言使用getch()讀取方向鍵

    C語言使用getch()讀取方向鍵

    getch()是編程中所用的函數(shù),這個函數(shù)是一個不回顯函數(shù),當(dāng)用戶按下某個字符時,函數(shù)自動讀取,無需按回車,有的C語言命令行程序會用到此函數(shù)做游戲,但是這個函數(shù)并非標(biāo)準(zhǔn)函數(shù),要注意移植性
    2021-07-07
  • C#中System.Threading.Tasks庫的使用

    C#中System.Threading.Tasks庫的使用

    System.Threading.Tasks是.NET的TAP核心,提供異步編程模型,本文主要介紹了C#中System.Threading.Tasks庫的使用,具有一定的參考價值,感興趣的可以了解一下
    2025-06-06
  • 一篇文章看懂C#中的協(xié)變、逆變

    一篇文章看懂C#中的協(xié)變、逆變

    這篇文章主要給大家介紹了如何通過一篇文章看懂C#中協(xié)變、逆變的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • C# 可空類型的具體使用

    C# 可空類型的具體使用

    這篇文章主要介紹了C# 可空類型的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • C#通過xpath查找xml指定元素的方法

    C#通過xpath查找xml指定元素的方法

    這篇文章主要介紹了C#通過xpath查找xml指定元素的方法,涉及C#操作XML文件的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#指針變量與unsafe的實現(xiàn)

    C#指針變量與unsafe的實現(xiàn)

    本文主要介紹了C#指針變量與unsafe的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 詳解C#如何對ListBox控件中的數(shù)據(jù)進(jìn)行操作

    詳解C#如何對ListBox控件中的數(shù)據(jù)進(jìn)行操作

    這篇文章主要為大家詳細(xì)介紹了C#中對ListBox控件中的數(shù)據(jù)進(jìn)行的操作,主要包括添加、刪除、清空、選擇、排序等,感興趣的小伙伴可以了解下
    2024-03-03
  • 在C#中捕獲內(nèi)存不足異常

    在C#中捕獲內(nèi)存不足異常

    這篇文章主要介紹了在C#中捕獲內(nèi)存不足異常,下面文章內(nèi)容圍繞如何在C#中捕獲內(nèi)存不足異常的相關(guān)資料展開詳細(xì)內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你有所幫助
    2021-12-12

最新評論