IL指令詳細表

来源:http://www.cnblogs.com/knowledgesea/archive/2016/05/05/5461040.html
-Advertisement-
Play Games

名稱 說明 Add 將兩個值相加並將結果推送到計算堆棧上。 Add.Ovf 將兩個整數相加,執行溢出檢查,並且將結果推送到計算堆棧上。 Add.Ovf.Un 將兩個無符號整數值相加,執行溢出檢查,並且將結果推送到計算堆棧上。 And 計算兩個值的按位“與”並將結果推送到計算堆棧上。 Arglist ...


名稱

說明

Add

將兩個值相加並將結果推送到計算堆棧上。

Add.Ovf

將兩個整數相加,執行溢出檢查,並且將結果推送到計算堆棧上。

Add.Ovf.Un

將兩個無符號整數值相加,執行溢出檢查,並且將結果推送到計算堆棧上。

And

計算兩個值的按位並將結果推送到計算堆棧上。

Arglist

返回指向當前方法的參數列表的非托管指針。

Beq

如果兩個值相等,則將控制轉移到目標指令。

Beq.S

如果兩個值相等,則將控制轉移到目標指令(短格式)。

Bge

如果第一個值大於或等於第二個值,則將控制轉移到目標指令。

Bge.S

如果第一個值大於或等於第二個值,則將控制轉移到目標指令(短格式)。

Bge.Un

當比較無符號整數值或不可排序的浮點型值時,如果第一個值大於第二個值,則將控制轉移到目標指令。

Bge.Un.S

當比較無符號整數值或不可排序的浮點型值時,如果第一個值大於第二個值,則將控制轉移到目標指令(短格式)。

Bgt

如果第一個值大於第二個值,則將控制轉移到目標指令。

Bgt.S

如果第一個值大於第二個值,則將控制轉移到目標指令(短格式)。

Bgt.Un

當比較無符號整數值或不可排序的浮點型值時,如果第一個值大於第二個值,則將控制轉移到目標指令。

Bgt.Un.S

當比較無符號整數值或不可排序的浮點型值時,如果第一個值大於第二個值,則將控制轉移到目標指令(短格式)。

Ble

如果第一個值小於或等於第二個值,則將控制轉移到目標指令。

Ble.S

如果第一個值小於或等於第二個值,則將控制轉移到目標指令(短格式)。

Ble.Un

當比較無符號整數值或不可排序的浮點型值時,如果第一個值小於或等於第二個值,則將控制轉移到目標指令。

Ble.Un.S

當比較無符號整數值或不可排序的浮點值時,如果第一個值小於或等於第二個值,則將控制權轉移到目標指令(短格式)。

Blt

如果第一個值小於第二個值,則將控制轉移到目標指令。

Blt.S

如果第一個值小於第二個值,則將控制轉移到目標指令(短格式)。

Blt.Un

當比較無符號整數值或不可排序的浮點型值時,如果第一個值小於第二個值,則將控制轉移到目標指令。

Blt.Un.S

當比較無符號整數值或不可排序的浮點型值時,如果第一個值小於第二個值,則將控制轉移到目標指令(短格式)。

Bne.Un

當兩個無符號整數值或不可排序的浮點型值不相等時,將控制轉移到目標指令。

Bne.Un.S

當兩個無符號整數值或不可排序的浮點型值不相等時,將控制轉移到目標指令(短格式)。

Box

將值類轉換為對象引用(O 類型)。

Br

無條件地將控制轉移到目標指令。

Br.S

無條件地將控制轉移到目標指令(短格式)。

Break

向公共語言結構 (CLI) 發出信號以通知調試器已撞上了一個斷點。

Brfalse

如果 value false、空引用(Visual Basic 中的 Nothing)或零,則將控制轉移到目標指令。

Brfalse.S

如果 value false、空引用或零,則將控制轉移到目標指令。

Brtrue

如果 value true、非空或非零,則將控制轉移到目標指令。

Brtrue.S

如果 value true、非空或非零,則將控制轉移到目標指令(短格式)。

Call

調用由傳遞的方法說明符指示的方法。

Calli

通過調用約定描述的參數調用在計算堆棧上指示的方法(作為指向入口點的指針)。

Callvirt

對對象調用後期綁定方法,並且將返回值推送到計算堆棧上。

Castclass

嘗試將引用傳遞的對象轉換為指定的類。

Ceq

比較兩個值。如果這兩個值相等,則將整數值 1 (int32) 推送到計算堆棧上;否則,將 0 (int32) 推送到計算堆棧上。

Cgt

比較兩個值。如果第一個值大於第二個值,則將整數值 1 (int32) 推送到計算堆棧上;反之,將 0 (int32) 推送到計算堆棧上。

Cgt.Un

比較兩個無符號的或不可排序的值。如果第一個值大於第二個值,則將整數值 1 (int32) 推送到計算堆棧上;反之,將 0 (int32) 推送到計算堆棧上。

Ckfinite

如果值不是有限數,則引發 ArithmeticException

Clt

比較兩個值。如果第一個值小於第二個值,則將整數值 1 (int32) 推送到計算堆棧上;反之,將 0 (int32) 推送到計算堆棧上。

Clt.Un

比較無符號的或不可排序的值 value1 value2。如果 value1 小於 value2,則將整數值 1 (int32 ) 推送到計算堆棧上;反之,將 0 ( int32 ) 推送到計算堆棧上。

Constrained

約束要對其進行虛方法調用的類型。

Conv.I

將位於計算堆棧頂部的值轉換為 native int

Conv.I1

將位於計算堆棧頂部的值轉換為 int8,然後將其擴展(填充)為 int32

Conv.I2

將位於計算堆棧頂部的值轉換為 int16,然後將其擴展(填充)為 int32

Conv.I4

將位於計算堆棧頂部的值轉換為 int32

Conv.I8

將位於計算堆棧頂部的值轉換為 int64

Conv.Ovf.I

將位於計算堆棧頂部的有符號值轉換為有符號 native int,併在溢出時引發 OverflowException

Conv.Ovf.I.Un

將位於計算堆棧頂部的無符號值轉換為有符號 native int,併在溢出時引發 OverflowException

Conv.Ovf.I1

將位於計算堆棧頂部的有符號值轉換為有符號 int8 並將其擴展為 int32,併在溢出時引發 OverflowException

Conv.Ovf.I1.Un

將位於計算堆棧頂部的無符號值轉換為有符號 int8 並將其擴展為 int32,併在溢出時引發 OverflowException

Conv.Ovf.I2

將位於計算堆棧頂部的有符號值轉換為有符號 int16 並將其擴展為 int32,併在溢出時引發 OverflowException

Conv.Ovf.I2.Un

將位於計算堆棧頂部的無符號值轉換為有符號 int16 並將其擴展為 int32,併在溢出時引發 OverflowException

Conv.Ovf.I4

將位於計算堆棧頂部的有符號值轉換為有符號 int32,併在溢出時引發 OverflowException

Conv.Ovf.I4.Un

將位於計算堆棧頂部的無符號值轉換為有符號 int32,併在溢出時引發 OverflowException

Conv.Ovf.I8

將位於計算堆棧頂部的有符號值轉換為有符號 int64,併在溢出時引發 OverflowException

Conv.Ovf.I8.Un

將位於計算堆棧頂部的無符號值轉換為有符號 int64,併在溢出時引發 OverflowException

Conv.Ovf.U

將位於計算堆棧頂部的有符號值轉換為 unsigned native int,併在溢出時引發 OverflowException

Conv.Ovf.U.Un

將位於計算堆棧頂部的無符號值轉換為 unsigned native int,併在溢出時引發 OverflowException

Conv.Ovf.U1

將位於計算堆棧頂部的有符號值轉換為 unsigned int8 並將其擴展為 int32,併在溢出時引發 OverflowException

Conv.Ovf.U1.Un

將位於計算堆棧頂部的無符號值轉換為 unsigned int8 並將其擴展為 int32,併在溢出時引發 OverflowException

Conv.Ovf.U2

將位於計算堆棧頂部的有符號值轉換為 unsigned int16 並將其擴展為 int32,併在溢出時引發 OverflowException

Conv.Ovf.U2.Un

將位於計算堆棧頂部的無符號值轉換為 unsigned int16 並將其擴展為 int32,併在溢出時引發 OverflowException

Conv.Ovf.U4

將位於計算堆棧頂部的有符號值轉換為 unsigned int32,併在溢出時引發 OverflowException

Conv.Ovf.U4.Un

將位於計算堆棧頂部的無符號值轉換為 unsigned int32,併在溢出時引發 OverflowException

Conv.Ovf.U8

將位於計算堆棧頂部的有符號值轉換為 unsigned int64,併在溢出時引發 OverflowException

Conv.Ovf.U8.Un

將位於計算堆棧頂部的無符號值轉換為 unsigned int64,併在溢出時引發 OverflowException

Conv.R.Un

將位於計算堆棧頂部的無符號整數值轉換為 float32

Conv.R4

將位於計算堆棧頂部的值轉換為 float32

Conv.R8

將位於計算堆棧頂部的值轉換為 float64

Conv.U

將位於計算堆棧頂部的值轉換為 unsigned native int,然後將其擴展為 native int

Conv.U1

將位於計算堆棧頂部的值轉換為 unsigned int8,然後將其擴展為 int32

Conv.U2

將位於計算堆棧頂部的值轉換為 unsigned int16,然後將其擴展為 int32

Conv.U4

將位於計算堆棧頂部的值轉換為 unsigned int32,然後將其擴展為 int32

Conv.U8

將位於計算堆棧頂部的值轉換為 unsigned int64,然後將其擴展為 int64

Cpblk

將指定數目的位元組從源地址複製到目標地址。

Cpobj

將位於對象(&* native int 類型)地址的值類型複製到目標對象(&* native int 類型)的地址。

Div

將兩個值相除並將結果作為浮點(F 類型)或商(int32 類型)推送到計算堆棧上。

Div.Un

兩個無符號整數值相除並將結果 ( int32 ) 推送到計算堆棧上。

Dup

複製計算堆棧上當前最頂端的值,然後將副本推送到計算堆棧上。

Endfilter

將控制從異常的 filter 子句轉移回公共語言結構 (CLI) 異常處理程式。

Endfinally

將控制從異常塊的 fault finally 子句轉移回公共語言結構 (CLI) 異常處理程式。

Initblk

將位於特定地址的記憶體的指定塊初始化為給定大小和初始值。

Initobj

將位於指定地址的值類型的每個欄位初始化為空引用或適當的基元類型的 0

Isinst

測試對象引用(O 類型)是否為特定類的實例。

Jmp

退出當前方法並跳至指定方法。

Ldarg

將參數(由指定索引值引用)載入到堆棧上。

Ldarg.0

將索引為 0 的參數載入到計算堆棧上。

Ldarg.1

將索引為 1 的參數載入到計算堆棧上。

Ldarg.2

將索引為 2 的參數載入到計算堆棧上。

Ldarg.3

將索引為 3 的參數載入到計算堆棧上。

Ldarg.S

將參數(由指定的短格式索引引用)載入到計算堆棧上。

Ldarga

將參數地址載入到計算堆棧上。

Ldarga.S

以短格式將參數地址載入到計算堆棧上。

Ldc.I4

將所提供的 int32 類型的值作為 int32 推送到計算堆棧上。

Ldc.I4.0

將整數值 0 作為 int32 推送到計算堆棧上。

Ldc.I4.1

將整數值 1 作為 int32 推送到計算堆棧上。

Ldc.I4.2

將整數值 2 作為 int32 推送到計算堆棧上。

Ldc.I4.3

將整數值 3 作為 int32 推送到計算堆棧上。

Ldc.I4.4

將整數值 4 作為 int32 推送到計算堆棧上。

Ldc.I4.5

將整數值 5 作為 int32 推送到計算堆棧上。

Ldc.I4.6

將整數值 6 作為 int32 推送到計算堆棧上。

Ldc.I4.7

將整數值 7 作為 int32 推送到計算堆棧上。

Ldc.I4.8

將整數值 8 作為 int32 推送到計算堆棧上。

Ldc.I4.M1

將整數值 -1 作為 int32 推送到計算堆棧上。

Ldc.I4.S

將提供的 int8 值作為 int32 推送到計算堆棧上(短格式)。

Ldc.I8

將所提供的 int64 類型的值作為 int64 推送到計算堆棧上。

Ldc.R4

將所提供的 float32 類型的值作為 F (float) 類型推送到計算堆棧上。

Ldc.R8

將所提供的 float64 類型的值作為 F (float) 類型推送到計算堆棧上。

Ldelem

按照指令中指定的類型,將指定數組索引中的元素載入到計算堆棧的頂部。

Ldelem.I

將位於指定數組索引處的 native int 類型的元素作為 native int 載入到計算堆棧的頂部。

Ldelem.I1

將位於指定數組索引處的 int8 類型的元素作為 int32 載入到計算堆棧的頂部。

Ldelem.I2

將位於指定數組索引處的 int16 類型的元素作為 int32 載入到計算堆棧的頂部。

Ldelem.I4

將位於指定數組索引處的 int32 類型的元素作為 int32 載入到計算堆棧的頂部。

Ldelem.I8

將位於指定數組索引處的 int64 類型的元素作為 int64 載入到計算堆棧的頂部。

Ldelem.R4

將位於指定數組索引處的 float32 類型的元素作為 F 類型(浮點型)載入到計算堆棧的頂部。

Ldelem.R8

將位於指定數組索引處的 float64 類型的元素作為 F 類型(浮點型)載入到計算堆棧的頂部。

Ldelem.Ref

將位於指定數組索引處的包含對象引用的元素作為 O 類型(對象引用)載入到計算堆棧的頂部。

Ldelem.U1

將位於指定數組索引處的 unsigned int8 類型的元素作為 int32 載入到計算堆棧的頂部。

Ldelem.U2

將位於指定數組索引處的 unsigned int16 類型的元素作為 int32 載入到計算堆棧的頂部。

Ldelem.U4

將位於指定數組索引處的 unsigned int32 類型的元素作為 int32 載入到計算堆棧的頂部。

Ldelema

將位於指定數組索引的數組元素的地址作為 & 類型(托管指針)載入到計算堆棧的頂部。

Ldfld

查找對象中其引用當前位於計算堆棧的欄位的值。

Ldflda

查找對象中其引用當前位於計算堆棧的欄位的地址。

Ldftn

將指向實現特定方法的本機代碼的非托管指針(native int 類型)推送到計算堆棧上。

Ldind.I

native int 類型的值作為 native int 間接載入到計算堆棧上。

Ldind.I1

int8 類型的值作為 int32 間接載入到計算堆棧上。

Ldind.I2

int16 類型的值作為 int32 間接載入到計算堆棧上。

Ldind.I4

int32 類型的值作為 int32 間接載入到計算堆棧上。

Ldind.I8

int64 類型的值作為 int64 間接載入到計算堆棧上。

Ldind.R4

float32 類型的值作為 F (float) 類型間接載入到計算堆棧上。

Ldind.R8

float64 類型的值作為 F (float) 類型間接載入到計算堆棧上。

Ldind.Ref

將對象引用作為 O(對象引用)類型間接載入到計算堆棧上。

Ldind.U1

unsigned int8 類型的值作為 int32 間接載入到計算堆棧上。

Ldind.U2

unsigned int16 類型的值作為 int32 間接載入到計算堆棧上。

Ldind.U4

unsigned int32 類型的值作為 int32 間接載入到計算堆棧上。

Ldlen

將從零開始的、一維數組的元素的數目推送到計算堆棧上。

Ldloc

將指定索引處的局部變數載入到計算堆棧上。

Ldloc.0

將索引 0 處的局部變數載入到計算堆棧上。

Ldloc.1

將索引 1 處的局部變數載入到計算堆棧上。

Ldloc.2

將索引 2 處的局部變數載入到計算堆棧上。

Ldloc.3

將索引 3 處的局部變數載入到計算堆棧上。

Ldloc.S

將特定索引處的局部變數載入到計算堆棧上(短格式)。

Ldloca

將位於特定索引處的局部變數的地址載入到計算堆棧上。

Ldloca.S

將位於特定索引處的局部變數的地址載入到計算堆棧上(短格式)。

Ldnull

將空引用(O 類型)推送到計算堆棧上。

Ldobj

將地址指向的值類型對象複製到計算堆棧的頂部。

Ldsfld

將靜態欄位的值推送到計算堆棧上。

Ldsflda

將靜態欄位的地址推送到計算堆棧上。

Ldstr

推送對元數據中存儲的字元串的新對象引用。

Ldtoken

將元數據標記轉換為其運行時表示形式,並將其推送到計算堆棧上。

Ldvirtftn

將指向實現與指定對象關聯的特定虛方法的本機代碼的非托管指針(native int 類型)推送到計算堆棧上。

Leave

退出受保護的代碼區域,無條件將控制轉移到特定目標指令。

Leave.S

退出受保護的代碼區域,無條件將控制轉移到目標指令(縮寫形式)。

Localloc

從本地動態記憶體池分配特定數目的位元組並將第一個分配的位元組的地址(瞬態指針,* 類型)推送到計算堆棧上。

Mkrefany

將對特定類型實例的類型化引用推送到計算堆棧上。

Mul

將兩個值相乘並將結果推送到計算堆棧上。

Mul.Ovf

將兩個整數值相乘,執行溢出檢查,並將結果推送到計算堆棧上。

Mul.Ovf.Un

將兩個無符號整數值相乘,執行溢出檢查,並將結果推送到計算堆棧上。

Neg

對一個值執行求反並將結果推送到計算堆棧上。

Newarr

將對新的從零開始的一維數組(其元素屬於特定類型)的對象引用推送到計算堆棧上。

Newobj

創建一個值類型的新對象或新實例,並將對象引用(O 類型)推送到計算堆棧上。

Nop

如果修補操作碼,則填充空間。儘管可能消耗處理周期,但未執行任何有意義的操作。

Not

計算堆棧頂部整數值的按位求補並將結果作為相同的類型推送到計算堆棧上。

Or

計算位於堆棧頂部的兩個整數值的按位求補並將結果推送到計算堆棧上。

Pop

移除當前位於計算堆棧頂部的值。

Prefix1

基礎結構。此指令為保留指令。

Prefix2

基礎結構。此指令為保留指令。

Prefix3

基礎結構。此指令為保留指令。

Prefix4

基礎結構。此指令為保留指令。

Prefix5

基礎結構。此指令為保留指令。

Prefix6

基礎結構。此指令為保留指令。

Prefix7

基礎結構。此指令為保留指令。

Prefixref

基礎結構。此指令為保留指令。

Readonly

指定後面的數組地址操作在運行時不執行類型檢查,並且返回可變性受限的托管指針。

Refanytype

檢索嵌入在類型化引用內的類型標記。

Refanyval

檢索嵌入在類型化引用內的地址(& 類型)。

Rem

將兩個值相除並將餘數推送到計算堆棧上。

Rem.Un

將兩個無符號值相除並將餘數推送到計算堆棧上。

Ret

從當前方法返回,並將返回值(如果存在)從調用方的計算堆棧推送到被調用方的

計算堆棧上。

Rethrow

再次引發當前異常。

Shl

將整數值左移(用零填充)指定的位數,並將結果推送到計算堆棧上。

Shr

將整數值右移(保留符號)指定的位數,並將結果推送到計算堆棧上。

Shr.Un

將無符號整數值右移(用零填充)指定的位數,並將結果推送到計算堆棧上。

Sizeof

將提供的值類型的大小(以位元組為單位)推送到計算堆棧上。

Starg

將位於計算堆棧頂部的值存儲到位於指定索引的參數槽中。

Starg.S

將位於計算堆棧頂部的值存儲在參數槽中的指定索引處(短格式)。

Stelem

用計算堆棧中的值替換給定索引處的數組元素,其類型在指令中指定。

Stelem.I

用計算堆棧上的 native int 值替換給定索引處的數組元素。

Stelem.I1

用計算堆棧上的 int8 值替換給定索引處的數組元素。

Stelem.I2

用計算堆棧上的 int16 值替換給定索引處的數組元素。

Stelem.I4

用計算堆棧上的 int32 值替換給定索引處的數組元素。

Stelem.I8

用計算堆棧上的 int64 值替換給定索引處的數組元素。

Stelem.R4

用計算堆棧上的 float32 值替換給定索引處的數組元素。

Stelem.R8

用計算堆棧上的 float64 值替換給定索引處的數組元素。

Stelem.Ref

用計算堆棧上的對象 ref 值(O 類型)替換給定索引處的數組元素。

Stfld

用新值替換在對象引用或指針的欄位中存儲的值。

Stind.I

在所提供的地址存儲 native int 類型的值。

Stind.I1

在所提供的地址存儲 int8 類型的值。

Stind.I2

在所提供的地址存儲 int16 類型的值。

Stind.I4

在所提供的地址存儲 int32 類型的值。

Stind.I8

在所提供的地址存儲 int64 類型的值。

Stind.R4

在所提供的地址存儲 float32 類型的值。

Stind.R8

在所提供的地址存儲 float64 類型的值。

Stind.Ref

存儲所提供地址處的對象引用值。

Stloc

從計算堆棧的頂部彈出當前值並將其存儲到指定索引處的局部變數列表中。

Stloc.0

從計算堆棧的頂部彈出當前值並將其存儲到索引 0 處的局部變數列表中。

Stloc.1

從計算堆棧的頂部彈出當前值並將其存儲到索引 1 處的局部變數列表中。

Stloc.2

從計算堆棧的頂部彈出當前值並將其存儲到索引 2 處的局部變數列表中。

Stloc.3

從計算堆棧的頂部彈出當前值並將其存儲到索引 3 處的局部變數列表中。

Stloc.S

從計算堆棧的頂部彈出當前值並將其存儲在局部變數列表中的 index 處(短格式)。

Stobj

將指定類型的值從計算堆棧複製到所提供的記憶體地址中。

Stsfld

用來自計算堆棧的值替換靜態欄位的值。

Sub

從其他值中減去一個值並將結果推送到計算堆棧

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近在研究Xamarin的東西,做到ListView遇到了一些瓶頸,像在數據龐大的情況下,該怎麼針對ListView中的數據分組呢? 基於能力有限的問題,暫時寫了一個只可以實現功能的臨時解決方案,畢竟,樣式和易用性啊還是有點。。。 廢話不多說,直接上代碼吧 首先我寫了一個簡單的ListView和一個 ...
  • 因公司業務需要,需要做一個微信公眾號里的圖片上傳功能,主要用到的技術就是 img轉base64 上到伺服器 話不多說, 貼代碼 先看前端顯示出來的東西 OK 圖片不重要,看代碼 再看js代碼 再看伺服器端代碼 至此, 大家應該能看明白這個微信內置瀏覽器的上傳方法了~ 希望和我一樣的朋友, 繼續加油, ...
  • 上一章講解了利用CKEditor實現了一個簡單的列表功能的查詢,CKEditor編輯器是由js實現的,js是一門非常強大的語法,但是要用它實現Vs開發工具那樣強大編輯器的功能,估計不可能,這就使得CKEditor實現簡單增刪改查還可以,如果要實現複雜功能和樣式展示效果會很難,所以我利用vs開發工具的 ...
  • OData是一個非常靈活的RESTful API,如果要做出強大的查詢API,那麼OData就強烈推薦了。http://www.odata.org/ OData的特點就是可以根據傳入參數動態生成Entity Framework的查詢,最終實現動態的SQL的查詢。但是在項目有時我們並沒有採用Entit ...
  • 使用IQueryable 使用IEnumerable IQueryable介面與IEnumberable介面的區別: IEnumerable<T> 泛型類在調用自己的SKip 和 Take 等擴展方法之前數據就已經載入在本地記憶體里了,而IQueryable<T> 是將Skip ,take 這些方法表 ...
  • 在webform中的devexpress aspxsplitter中套用了jquery-easyui的 tabs id=tt <div id="tt" class="easyui-tabs" data-options="tools:'#tab-tools'" style="width:100%;he ...
  • 參考:http://www.cnblogs.com/chengxiaohui/articles/2092001.html 在EF4(.NET 4)中,我們有了全新的API:ObjectContext.ExecuteStoreCommand(...)和 ObjectContext.ExecuteSto ...
  • 當前,整個互聯網正在從IT時代向DT時代演進,大數據技術也正在助力企業和公眾敲開DT世界大門。當今“大數據”一詞的重點其實已經不僅在於數據規模的定義,它更代表著信息技術發展進入了一個新的時代,代表著爆炸性的數據信息給傳統的計算技術和信息技術帶來的技術挑戰和困難,代表著大數據處理所需的新的技術和方法, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...