
C# 類型(開發者的工作原理)
在任何編程語言中,理解資料型別至關重要,C#也不例外。 無論是int型別還是浮點型別,每個型別都包含特定種類的資訊,也就是實際資料。
The Basics of C#
C#是一種強型別語言。 但您可能會問,什麼是強型別語言呢? 這意味著每個變數和物件必須有一個聲明的資料型別。 而且正是資料型別決定了您可以在那個變數中儲存什麼樣的資料。
C#有兩大資料型別:值型別和引用型別。這些也是您可能聽說過的使用者自定義型別。
Value Types in C#
在C#中,值型別很簡單。 當您聲明一個值型別變數時,實際儲存的資料是您賦給變數的值。 如果改變一個變數的值,不會影響其他變數。
C#中最常見的值型別包括:
- 整數(由
int型別表示) - 浮點數(由
double型別表示) - 布林值,可以為true或false
首先談談int型別是一個32位的資料型別,可以儲存從-2,147,483,648到2,147,483,647的整數。以下是一個例子:
int myInteger = 15;Dim myInteger As Integer = 15現在,進入浮點型別。 在C#中,有兩種浮點型別:double。
float型別是一種32位浮點數,精確度可達7位數。 這對於科學計算非常有用。 可以這樣宣告一個float型別的變數:
float myFloat = 12.34F;Dim myFloat As Single = 12.34Fdouble型別是一種64位浮點型別,精確度可達15-16位數。 它比float型別更準確,常用於金融和貨幣計算中。 以下是一個double型別變數的例子:
double myDouble = 12.3456789;Dim myDouble As Double = 12.3456789Predefined Data Types in C#
好的,繼續。 C#提供了若干"預定義資料型別",可以在您的應用程式中使用。 這些是您可以用來定義自己的"使用者自定義型別"的基本組件。
這裡有幾個例子:
- **
byte:**這是一種8位無符號整數,範圍從0到255。 - **
char:**這是一個16位的Unicode字元。 - **
decimal:**因其高精度,適合金融和貨幣計算。 -
false,非常適合邏輯運算。
每一個"預定義資料型別"都有其目標和"預設值",因此選擇適合您需求的型別非常重要!
Default Values in C#
在C#中,每種資料型別都有預設值。 對於值型別變數,如果您不初始化它們,它們會自動取預設值。
例如,double)的預設值是0.0。
引用型別的預設值是null,表示它不引用任何物件。
Type Conversion in C#
有時,您可能需要將一種資料型別轉換為另一種。 這稱為型別轉換,而C#支持兩種:隱式轉換和顯式轉換。
隱式轉換會在您將一個型別的值賦給能儲存更大值的相容型別的變數時自動發生。 例如,您可以將double型別而無資訊丟失。
int myInt = 10;
double myDouble = myInt; // Implicit conversionDim myInt As Integer = 10
Dim myDouble As Double = myInt ' Implicit conversion顯式轉換,也稱為轉換,需要您在嘗試在不相容型別之間轉換或從較大型別轉換為較小型別時執行。 它通過將目標型別放在要轉換的值之前加上括弧來完成。
double myDouble = 10.5;
int myInt = (int)myDouble; // Explicit conversion, decimal part is lostImports System
Dim myDouble As Double = 10.5
Dim myInt As Integer = CInt(Math.Truncate(myDouble)) ' Explicit conversion, decimal part is lostReference Types in C#
C#中的引用型別工作方式與值型別有點不同。它們不是儲存實際資料,而是儲存數值被儲存的地址。 換句話說,它"引用"了記憶體中的另一個位置。
因此,如果您更改引用型別物件,它也會影響另一個變數。 這是因為引用型別變數會自動反映對其指向的記憶體地址上儲存的實際資料所作的更改。
聽起來可能有點複雜,但讓我們通過一個例子來理解。 假設我們有一個名為Person的類:
class Person
{
public string Name { get; set; }
}Friend Class Person
Public Property Name() As String
End Class然後我們建立該類的兩個"引用型別"變數:
Person person1 = new Person { Name = "Alice" };
Person person2 = person1;Dim person1 As New Person With {.Name = "Alice"}
Dim person2 As Person = person1在這裡,person2都指向同一個記憶體位置。 如果我們改變person2將反映這一變化:
person1.Name = "Bob";
Console.WriteLine(person2.Name); // Outputs "Bob"person1.Name = "Bob"
Console.WriteLine(person2.Name) ' Outputs "Bob"Arrays in C#
陣列是一種引用型別,可以儲存多個相同資料型別的值。 它就像一個容器,您可以在其中儲存一組同一型別的值。
要聲明一個陣列,首先指定其元素的資料型別,然後加上方括號。 然後使用new關鍵字來建立陣列並指定其長度。
int[] myIntArray = new int[5]; // Array of int type, can hold 5 valuesDim myIntArray(4) As Integer ' Array of int type, can hold 5 values要存取陣列的元素,請使用索引,從第0個元素開始。
myIntArray[0] = 10; // Sets the first element of the array to 10myIntArray(0) = 10 ' Sets the first element of the array to 10請記住,C#中的陣列是"引用型別",因此在一個變數中進行的更改將影響任何引用同一陣列的"其他變數"。
Generating PDFs with IronPDF in C#
IronPDF是一個強大的C#程式庫,允許開發者建立、編輯和提取PDF中的內容。 這對於生成報告或建立動態發票等任務來說,絕對是救星。
IronPDF入門
首先,您需要安裝 IronPDF。 您可以透過NuGet,這是一個流行的.NET套件管理器來實現。 在您的套件管理控制台中運行以下命令:
從HTML建立PDF
IronPDF能夠從HTML建立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")以上程式碼將生成一個帶有"Hello, World!"標題的PDF。 注意,HTML程式碼僅僅是一個字串。 在C#中,字串是一種引用型別,並且是最常用的C#型別之一。

結論
恭喜! 您深入了解了C#型別的世界,理解了值型別、引用型別、預定義資料型別,以及它們如何塑造您編寫程式碼的方式。 您還看到了使用像IronPDF這樣的程式庫的力量。
IronPDF提供免費試用,IronPDF的授權從$liteLicensing開始。

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。
相關文章


