跳過到頁腳內容
.NET幫助

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

在任何程式語言中,瞭解資料類型都至關重要,C# 也不例外。 無論是 int 類型還是浮點類型,每種類型都保存著特定類型的信息,也稱為實際數據。

The Basics of C#

C# 是強烈類型語言。 您會問,強式語言是什麼意思? 這表示每個變數和物件都必須有已宣告的資料類型。 而資料類型才是決定您可以在該變數中儲存何種資料的關鍵。

C# 有 兩種主要的資料類型:值類型和參照類型。這些也是您可能會聽到的使用者定義類型。

Value Types in C#

在 C# 中,值類型很簡單。 當您宣告一個值型變數時,實際儲存的資料就是您指定給變數的值。 如果您變更一個變數的值,並不會影響其他變數。

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

  • 整數(由 int 型表示)
  • 浮點數(由 floatdouble 型表示)
  • 布林,非真即假

我們先來談談 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 類型為 32 位元浮點數,精度最高可達 7 位元。 非常適合科學計算。 可以這樣宣告一個 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

Predefined Data Types in C#

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

以下是幾個範例:

  • byte:這是一個 8 位元無符號整數,值範圍為 0 到 255。
  • char:這是一個 16 位元 Unicode 字元。
  • decimal:由於其高精度,非常適合用於財務和貨幣計算。
  • bool:儲存 truefalse,非常適合邏輯運算。

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

Default Values in C#

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

例如,int 類型的預設值為 0,浮點值類型(floatdouble)的預設值為 0.0。

引用類型的預設值為 null,表示它沒有引用任何物件。

Type Conversion in 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

Reference Types in 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

Arrays in 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 開始。

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# 中的陣列是"參照類型",因此對一個變數所做的變更會影響參照相同陣列的任何"其他變數"。

Generating PDFs with IronPDF in C#

IronPDF是一個功能強大的 C# 函式庫,可讓開發人員從 PDF 中建立、編輯和擷取內容。 這對於產生報表或建立動態發票等工作而言,可說是救星。

開始使用 IronPDF

首先,您需要安裝 IronPDF。 您可以透過 .NET 常用的套件管理程式 NuGet 來完成。 在套件管理員控制台執行下列指令:

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# 中,字串是一種引用類型,也是最常用的 C# 類型之一。

C# Types (How It Works For Developers) 圖 1 - Hello World 文字

結論

恭喜您! 您已深入 C# Types 的世界,瞭解值類型、參照類型、預定義資料類型,以及它們如何塑造您撰寫程式碼的方式。 您也見識過使用 IronPDF 等資料庫的威力。

IronPDF 提供免費試用,IronPDF 授權起價為 $liteLicensing

常見問題解答

C# 是強型別語言意味著什麼?

C# 是強型別語言,這意味著每個變數和物件都必須具有已宣告的資料型別,這決定了可以儲存什麼類型的資料。這在使用像 IronPDF 這樣的庫來處理資料時可確保型別安全和一致性。

怎樣在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字符串轉換為 PDF。您還可以使用 RenderHtmlFileAsPdf 將 HTML 文件轉換為 PDF。

C# 中的值型別是什麼?

C# 中的值型別儲存分配給它們的實際資料。常見範例包括整數 (int)、浮點數 (floatdouble) 以及布林值 (bool)。這些型別在使用 IronPDF 進行資料處理任務時非常有用。

C# 中參考型別的目的何在?

C# 中的參考型別儲存實際資料在記憶體中的位置。這在使用像 IronPDF 這樣的庫中至關重要,因為如果它們引用相同的資料,改變一個變數就可能影響另一個變數。

如何在 C# 中進行隱式型別轉換?

C# 中的隱式型別轉換是在將一種型別的值分配給可以容納更大值的兼容型別時自動發生的。例如,將 int 轉換為 double 是自動完成的,這在使用 IronPDF 時可能會遇到。

您能舉一個 C# 中顯式型別轉換的例子嗎?

在 C# 中,當需要在不兼容型別之間進行轉換時,需要進行顯式型別轉換或強制轉換,例如將 double 轉換為 int。這是通過在值前將目標型別放在括號中來完成的,該方法也可以在使用 IronPDF 進行專門的資料處理時應用。

C# 中如何使用陣列?

C# 中的陣列是參考型別,可以儲存多個相同資料型別的值。您可以通過指定資料型別,然後括上方括號來宣告它們,並使用 new 關鍵字創建陣列並指定其長度。此概念在使用 IronPDF 管理大型資料集時非常有用。

如何在 C# 中使用庫從 HTML 創建 PDF?

IronPDF 是一個強大的 C# 庫,允許開發人員從 HTML 創建 PDF。通過使用 RenderHtmlAsPdf 等方法,您可以輕鬆直接從 HTML 內容生成 PDF。

在 C# 中使用 IronPDF 進行 PDF 操作的好處是什麼?

IronPDF 提供了一整套強大的功能,用於在 C# 中創建、編輯和從 PDF 中提取內容。它支持將 HTML 轉換為 PDF、添加頁眉和頁腳等,使其成為處理 PDF 文件的開發人員不可或缺的工具。

Jacob Mellor, Team Iron 首席技術官
首席技術官

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我