.NET 幫助

C# 類型(開發人員的工作原理)

在任何程式語言中,瞭解資料類型至關重要,C# 也不例外。 無論是int型別還是浮點型別,每種型別都包含特定類型的信息,也就是所謂的實際資料。

C# 基礎知識

C# 是一種強類型語言。 但你會問,強類型語言是什麼意思? 這意味著每個變數和物件都必須有一個已宣告的數據類型。 而是資料類型決定了您可以在該變數中儲存什麼類型的資料。

C# 有兩種主要的數據類型:值類型和參考類型。這些也是您可能聽說過的用戶自定義類型。

C# 中的值類型

在 C# 中,值類型是簡單的。 當您宣告一個值類型變量時,實際儲存的數據即為您賦予該變量的值。 如果您更改了一個變數的值,它不會影響其他變數。

在 C# 中,最常見的值類型包括

  • 整數(由 int 類型表示)
  • 浮點數(由「float 和 double 類型」表示)
  • 布林值,可以是 true 或 false。

    首先來談談int型別。在 C# 中,int型別是32位元的數據類型,可以存儲從 -2,147,483,648 到 2,147,483,647 的整數。這裡有一個示例

int myInteger = 15;
int myInteger = 15;
Dim myInteger As Integer = 15
$vbLabelText   $csharpLabel

現在,進入浮點類型。 在 C# 中,有兩種浮點類型:floatdouble

float 型別是具有精度達到 7 位數的 32 位元浮點數。 它非常適合科學計算。 可以這樣宣告一個float類型變數:

float myFloat = 12.34F;
float myFloat = 12.34F;
Dim myFloat As Single = 12.34F
$vbLabelText   $csharpLabel

double 類型是一種 64 位元浮點類型,精度可達 15 到 16 位數字。 它比 float 類型更精確,常用於金融和貨幣計算。 這裡是一個 double 類型的變數例子:

double myDouble = 12.3456789;
double myDouble = 12.3456789;
Dim myDouble As Double = 12.3456789
$vbLabelText   $csharpLabel

C#中的預定義資料類型

好的,繼續前進。 C# 提供多種「預定義資料型別」,您可以在應用程式中使用。 這些是您可以用來定義自己的「使用者定義類型」的基本構建模塊。

以下是一些範例:

  • byte:這是一個範圍從 0 到 255 的 8 位元無符號整數。
  • char:它是一個 16 位元的 Unicode 字元。
  • decimal:由於其高精度,理想用於「金融和貨幣計算」。
  • bool:存儲「true」或「false」,非常適合邏輯運算。

    每種「預定義資料類型」都有其獨特的用途和「預設值」,因此選擇適合您需求的類型非常重要!

C#中的預設值

在 C# 中,每種資料型別都有其預設值。 對於值類型變數,如果您不初始化它們,它們會自動採用其預設值。

例如,int 類型的預設值是 0,浮點數值類型(float 或 double)的預設值是 0.0。

參考型別的預設值為 null,表示其不參考任何物件。

C# 中的類型轉換

有時候,你可能需要將一種數據類型轉換為另一種。 這稱為類型轉換,C# 支援兩種轉換:隱式轉換和顯式轉換。

當您將一種類型的值分配給可以容納更大值的相容類型的變量時,會自動發生隱含轉換。 例如,您可以將int類型賦值給double類型而不會丟失資訊。

int myInt = 10;
double myDouble = myInt;                // Implicit conversion
int myInt = 10;
double myDouble = myInt;                // Implicit conversion
Dim myInt As Integer = 10
Dim myDouble As Double = myInt ' Implicit conversion
$vbLabelText   $csharpLabel

顯式轉換,也稱為強制轉換,當你嘗試在不相容的類型之間進行轉換或從較大類型轉換為較小類型時是必需的。 将目标类型放在要转换的值前面的括号中即可完成。

double myDouble = 10.5; 
int myInt = (int)myDouble;              // Explicit conversion, decimal part is lost
double myDouble = 10.5; 
int myInt = (int)myDouble;              // Explicit conversion, decimal part is lost
Imports System

Dim myDouble As Double = 10.5
Dim myInt As Integer = CInt(Math.Truncate(myDouble)) ' Explicit conversion, decimal part is lost
$vbLabelText   $csharpLabel

C#中的引用類型

在 C# 中,引用類型的運作方式與值類型稍有不同。引用類型變數不儲存實際數據,而是儲存數值所在的位址。 換句話說,它「指向」記憶體中的另一個位置。

因此,如果您更改引用型物件,它也會影響到另一個變數。 這是因為引用類型變量會自動反映其指向的記憶體地址中實際數據的變更。

現在,這聽起來可能有點複雜,但讓我們通過一個例子來解析。 假設我們有一個名為Person的類別:

class Person
{
    public string Name { get; set; }
}
class Person
{
    public string Name { get; set; }
}
Friend Class Person
	Public Property Name() As String
End Class
$vbLabelText   $csharpLabel

然後我們創建這個類的兩個「引用型別」變數:

Person person1 = new Person { Name = "Alice" };
Person person2 = person1;
Person person1 = new Person { Name = "Alice" };
Person person2 = person1;
Dim person1 As New Person With {.Name = "Alice"}
Dim person2 As Person = person1
$vbLabelText   $csharpLabel

這裡,person1person2 都指向相同的記憶體位置。 如果我們更改person1person2將反映該變更:

person1.Name = "Bob"; 
Console.WriteLine(person2.Name);                // Outputs "Bob"
person1.Name = "Bob"; 
Console.WriteLine(person2.Name);                // Outputs "Bob"
person1.Name = "Bob"
Console.WriteLine(person2.Name) ' Outputs "Bob"
$vbLabelText   $csharpLabel

C#中的陣列

陣列是一種參考型別,用來保存多個相同資料型別的值。 這就像一個容器,你可以在其中存儲一組值,這些值全部都是相同類型的。

要宣告一個陣列,首先要指定其元素的資料類型,然後加上方括號。 然後你使用new關鍵字來創建數組並指定其長度。

int [] myIntArray = new int [5];                 // Array of int type, can hold 5 values
int [] myIntArray = new int [5];                 // Array of int type, can hold 5 values
Dim myIntArray(4) As Integer ' Array of int type, can hold 5 values
$vbLabelText   $csharpLabel

要存取陣列的元素,請使用從 0 開始的索引,0 對應於第一個元素。

myIntArray [0] = 10;                           // Sets the first element of the array to 10
myIntArray [0] = 10;                           // Sets the first element of the array to 10
myIntArray (0) = 10 ' Sets the first element of the array to 10
$vbLabelText   $csharpLabel

請記住,C#中的陣列是“參考類型”,因此在一個變數中所做的更改會影響引用同一個陣列的任何“其他變數”。

使用 IronPDF 在 C# 中生成 PDF

IronPDF 是一個強大的 C# 函式庫,讓開發者可以創建、編輯和提取 PDF 文件內容。 這可以在生成報告或創建動態發票等任務中派上用場。

入門 IronPDF

首先,您需要安裝 IronPDF。 您可以透過 NuGet,這是一個受歡迎的 .NET 套件管理器,來完成此操作。 在您的套件管理控制台中運行以下命令:

Install-Package IronPdf

從 HTML 創建 PDF

IronPDF 能夠從 HTML 建立 PDF。 這很簡單:

using IronPdf;
var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>").SaveAs("HelloWorld.pdf");
using IronPdf;
var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>").SaveAs("HelloWorld.pdf");
Imports IronPdf
Private Renderer = New ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>").SaveAs("HelloWorld.pdf")
$vbLabelText   $csharpLabel

上述程式碼將生成一個帶有 "Hello, World!" 標題的 PDF。 請注意,HTML 代碼只是一個字串。 在C#中,string是一種引用類型,也是C#中使用最多的類型之一。

C#類型(它如何為開發人員工作)圖1 - Hello World文本

結論

恭喜! 您深入了解了 C# 类型的世界,理解了值类型、引用类型、预定义的数据类型以及它们如何影响您的编码方式。 您也看到了使用像 IronPDF 這樣的庫的強大功能,以及您對 C# 的掌握如何

IronPDF 提供免費試用,IronPDF 的授權從$liteLicensing開始。

Chipego
奇佩戈·卡林达
軟體工程師
Chipego 擁有天生的傾聽技能,這幫助他理解客戶問題,並提供智能解決方案。他在獲得信息技術理學學士學位後,于 2023 年加入 Iron Software 團隊。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但隨著他每天找到新的方法來支持客戶,他對所有產品的了解也在不斷增長。他喜歡在 Iron Software 的協作生活,公司內的團隊成員從各自不同的經歷中共同努力,創造出有效的創新解決方案。當 Chipego 離開辦公桌時,他常常享受讀好書或踢足球的樂趣。
< 上一頁
C# 數字類型(開發人員如何工作)
下一個 >
C# 查找(開發者使用方式)