跳過到頁腳內容
.NET幫助

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

在使用 C# 等程式語言時,了解 資料類型 是至關重要的。 就像在現實世界中,我們有各種容器來儲存不同類型的物品一樣,在程式設計中,我們使用 資料類型 來指定我們要儲存的資料類型。 簡單來說,資料類型指定儲存於記憶體位置的實際資料類型

什麼是資料類型?

在 C# 中,資料類型可以理解為我們在程式中儲存資料的分類。 這些分類有助於確保以正確的方式儲存正確種類的資料。 就像選擇正確的罐子來存放餅乾或香料一樣; jar 量身打造,以保持其內容的安全性和可讀性。

資料類型主要有兩大類:

1.值資料類型:它們儲存實際的資料。 值類型會儲存在記憶體的堆疊區域中,其預設值會根據類型進行設定。 值類型的範例是 int 類型,它會儲存一個整數作為值。 2.參考資料類型:它們並不包含變數中儲存的實際資料,而是包含資料記憶體位置的參考。 實際的參考類型位於記憶體的堆區域,其 預設值null

為什麼資料類型很重要?

瞭解資料類型就如同瞭解 C# 的構成塊。 就像 C 語言一樣,C# 中的資料類型可確保:

  • 分配適當的記憶體。
  • 實際資料會被有效地儲存。
  • 資料安全擷取,不會有任何遺失或誤解。

預定義資料類型

預定義的資料類型,也稱為內建資料類型,是讓我們能夠在程式中執行各種動作和儲存各種形式資料的重要元件。 這些工具是 C# 的基本工具,因為它們提供了建立可儲存值的變數的方法。

數字類型

整數類型

這些值類型用來儲存正負整數。它們可進一步分為

  • Int 資料類型 (int type): 代表 32 位元有符號整數。
  • 簡短資料類型:代表 16 位元有符號整數。
  • 長型資料類型:代表 64 位元有符號的整數。
  • 位元組資料類型: 代表 8 位元無符號整數。
  • Sbyte 資料類型: 代表 8 位元有符號整數,允許使用負數。
int number = 100;
short smallNumber = 200;
long largeNumber = 300L;
byte positiveNumber = 255;
sbyte negativeNumber = -100;
int number = 100;
short smallNumber = 200;
long largeNumber = 300L;
byte positiveNumber = 255;
sbyte negativeNumber = -100;
Dim number As Integer = 100
Dim smallNumber As Short = 200
Dim largeNumber As Long = 300L
Dim positiveNumber As Byte = 255
Dim negativeNumber As SByte = -100
$vbLabelText   $csharpLabel

浮點類型

這些數值類型包括有小數點的數字或浮點數字。

  • 浮點類型:代表單精度浮點類型。 適用於不需要完全雙精度的數值。
  • Double Type: 代表雙精度浮點類型。 它允許比浮動更高的精確度。
float floatValue = 10.5f;
double doubleValue = 20.55;
float floatValue = 10.5f;
double doubleValue = 20.55;
Dim floatValue As Single = 10.5F
Dim doubleValue As Double = 20.55
$vbLabelText   $csharpLabel

十進制類型

十進制專為財務和貨幣計算而設計,提供 28 位數的精確度,非常適合需要高度精確度的計算。

decimal money = 100.50m;
decimal money = 100.50m;
Dim money As Decimal = 100.50D
$vbLabelText   $csharpLabel

文字類型

Char 資料類型 (char type)

用於儲存單一字元,例如字母、數字或特殊字符。

char letter = 'A';
char letter = 'A';
Dim letter As Char = "A"c
$vbLabelText   $csharpLabel

字串資料類型(字串類型)

C# 中的字串資料類型代表一連串的字元。 它以 String 類別為基礎,用途非常廣泛。

string name = "John";
string name = "John";
Dim name As String = "John"
$vbLabelText   $csharpLabel

其他預定義類型

Bool 資料類型。

代表布林值,truefalse

bool isTrue = true;
bool isTrue = true;
Dim isTrue As Boolean = True
$vbLabelText   $csharpLabel

物件類型

所有其他類型的終極基類。它可以指代任何其他類型的物件。

object obj = "This is a string";
object obj = "This is a string";
Dim obj As Object = "This is a string"
$vbLabelText   $csharpLabel

動態類型

繞過編譯時間類型檢查的類型。 它是在執行時決定的,允許更多彈性,但安全性較低。

dynamic anything = 10;
dynamic anything = 10;
'INSTANT VB NOTE: 'Option Strict Off' is used here since dynamic typing is used:
Option Strict Off

'INSTANT VB NOTE: In the following line, Instant VB substituted 'Object' for 'dynamic' - this will work in VB with Option Strict Off:
Dim anything As Object = 10
$vbLabelText   $csharpLabel

預定義引用類型

除了上述值類型外,還有預先定義的參考類型,包括

  • Class Types: 定義物件的藍圖。
  • 介面類型:定義類別可以實作的契約。
  • 陣列類型:允許建立陣列,即相同類型項目的集合。

內建轉換功能

C# 也提供不同預定義資料類型之間的內建轉換。例如,您可以將 int 轉換為 float 而不會遺失資訊。

預設值

每個值資料類型都有一個預設值,如果沒有給出值,就會指定預設值。 例如,bool 資料類型的預設值是 false,而對於參考類型,預設值是 null

C# 中使用者定義的資料類型;

除了預定義的類型之外,C# 還提供了定義我們資料類型的彈性,稱為使用者定義類型。這些使用者定義類型是由程式設計師所建立與定義,以建立符合其特定需求的結構。 這些工具包括

結構類型

對小型資料結構有用。 它允許您在單一變數名稱下組合不同的資料類型。 可以用 C# 定義如下:

public struct Point
{
    public int X;
    public int Y;
}
public struct Point
{
    public int X;
    public int Y;
}
Public Structure Point
	Public X As Integer
	Public Y As Integer
End Structure
$vbLabelText   $csharpLabel

枚舉類型

枚舉是一組命名的常數,代表底層的整數值。

enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat }
enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat }
Friend Enum Days
	Sun
	Mon
	Tue
	Wed
	Thu
	Fri
	Sat
End Enum
$vbLabelText   $csharpLabel

使用者定義的參考類型

Class Types、Interface Types、Array Types 和 Delegate Types:這些是參考類型,較為進階,但同樣重要。

  • 類別類型:允許您在單一單位內封裝資料和方法。
  • 介面類型:定義類別類型必須實作的一組方法。 這就像是如何建立類別類型的指南。
  • 陣列類型:一種資料結構,用來儲存固定大小的相同資料類型元素集合。
  • 委託類型:表示方法的參照的類型。

指標資料類型

雖然 C# 是一種高階語言,通常會抽象出記憶體管理,但它也提供 指針資料類型,用於需要直接操作記憶體位址的特定工作。 不過,您需要使用不安全的程式碼區塊來使用指標資料類型。

unsafe
{
    int var = 10;
    int* p = &var;  // Address operator to get memory address
}
unsafe
{
    int var = 10;
    int* p = &var;  // Address operator to get memory address
}
'INSTANT VB TODO TASK: C# 'unsafe' code is not converted by Instant VB:
'unsafe
'{
'	int var = 10;
'	int* p = &var; ' Address operator to get memory address
'}
$vbLabelText   $csharpLabel

表格概述

為了提供簡明的概述,下表列出了一些主要的值和參考資料類型以及使用範例:

!a href="/static-assets/pdf/blog/csharp-data-type-guide/csharp-data-type-guide-1.webp">C# Data Types (How It Works For Developers) 圖 1 - 資料類型表。

介紹 Iron Suite 發力 C#。

雖然了解 C# 中的資料類型為強大的程式設計奠定了基礎,但結合強大的工具可以大幅改善您的編碼經驗。 Iron Suite 就是這些工具的範例,專為開發人員打造,旨在增強您的能力、加快開發流程並簡化複雜的任務。

IronPDF 您的 PDF 作業解決方案

IronPDF Tool for PDF Manipulation in C# 是您需要在 C# 專案中處理 PDF 文件時不可或缺的工具。 此工具可從 HTML、圖片和 ASPX 網頁表單產生 PDF。 這可視為類似於在 C# 中使用字串資料類型。

IronPDF 是一款非常棒的工具,它可以將網頁、URL 和 HTML 轉換成 PDF,而且看起來和原版一模一樣。 這非常適合製作 PDF 的線上東西,例如報告和發票。 因此,如果您需要從網頁製作 PDF,IronPDF 就是您的最佳選擇!

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronXL.Excel 操作簡易。

如果沒有正確的工具,用 C# 處理 Excel 檔案可能會令人望而生畏。 這就是 IronXL Excel Library for C# 介入的地方。 IronXL 可讓開發人員讀取、寫入和建立 Excel 試算表,而不需要 Interop。有了 IronXL,處理 Excel 資料就像在 C# 中操作整數或浮點數一樣直覺。

IronOCR 可以輕鬆地將圖片轉成程式碼。

在應用程式中加入光學字元識別 (OCR) 功能需要強大且精確的工具。 IronOcr Library for OCR Tasks in C# 提供的正是這樣的功能。 使用 IronOCR,您可以讀取影像、掃描文件或 PDF 中的文字和 BarCode,將其轉換為可操作的資料。 它消除了手動資料輸入和潛在的錯誤,提供了一個簡化的方式將您的內容數位化。

IronBarcode 改變您處理條碼的方式

BarCode 無處不在,能夠在 C# 應用程式中產生或讀取這些條碼對許多產業來說都至關重要。 IronBarcode for BarCode Processing in C# 為您所有的條碼需求提供了一個全面的套件。 無論您是為產品建立條碼、掃描條碼進行資料擷取,或是將條碼與庫存系統整合,IronBarcode 都能滿足您的需求。

結論

Iron Suite 擁有一系列功能強大的工具,包括 IronPDF、IronXL、IronOCR 和 IronBarcode,對任何 C# 開發人員而言都是寶貴的資產,就像 C# 中的預定義資料類型一樣。

更吸引人的是,Iron Suite 的每個產品都提供 免費試用 Iron 軟體工具,讓您可以探索和體驗這些工具,而無需立即投資。 如果您認為這些工具對您的專案而言是不可或缺的,授權費用只需 $799 起。 在獨家優惠中,您只需花兩個單獨工具的價格即可購買完整的 Iron Suite。

常見問題解答

如何在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換成 PDF。您也可以使用 RenderHtmlFileAsPdf 將 HTML 檔案轉換成 PDF。

C# 中值類型和參照類型的主要差異為何?

值類型會儲存實際的資料,並在堆疊上進行分配;而參考類型則會儲存資料的參照,並儲存在堆上。了解這一點對 C# 中有效的記憶體管理至關重要。

資料類型如何影響 C# 中的記憶體分配?

資料類型會決定分配多少記憶體來儲存資料。值類型需要在堆疊上分配記憶體,而引用類型則需要堆分配。正確使用可確保記憶體的有效利用和資料的完整性。

C# 中有哪些使用者定義資料類型的範例?

C# 中的使用者定義資料類型包括 Struct Types、Enum Types 和 Reference Types 等結構,例如 Class Types、Interface Types、Array Types 和 Delegate Types。這些可讓程式設計師建立自訂的資料結構。

工具如何增強 C# 開發的資料處理能力?

IronPDF、IronXL、IronOCR 和 IronBarcode 等工具分別為處理 PDF、Excel 檔案、OCR 任務和條碼提供了強大的解決方案。它們簡化了複雜的任務,讓開發人員可以專注於核心應用程式邏輯。

C# 中有哪些數值資料類型及其用途?

C# 中的數值資料類型包括整數、浮點數和小數。它們用於儲存和處理數值資料,其中小數可為財務計算提供高精確度。

char 和字串資料類型在 C# 中扮演什麼角色?

char 資料類型儲存單一字元,而 string 資料類型則用於字元序列,方便文字資料的操作和儲存。

IronPDF 可否用於簡單 PDF 產生以外的任務?

是的,IronPDF 還可以合併、分割和編輯現有的 PDF,以及擷取文字和圖片,使其成為 C# 專案中全面處理 PDF 的多用途工具。

IronXL 如何改善在 C# 中使用 Excel 的工作?

IronXL 可讓開發人員在不依賴 Excel Interop 的情況下與 Excel 檔案互動,提供以 C# 程式化方式讀取、寫入和建立試算表的功能。

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

Jacob Mellor 是 Iron Software 的首席技術官,作為 C# PDF 技術的先鋒工程師。作為 Iron Software 核心代碼的原作者,他自開始以來塑造了公司產品架構,與 CEO Cameron Rimington 一起將其轉變為一家擁有超過 50 名員工的公司,為 NASA、特斯拉 和 全世界政府機構服務。

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

他的旗艦產品 IronPDF & Iron Suite .NET 庫在全球 NuGet 被安裝超過 3000 萬次,其基礎代碼繼續為世界各地的開發工具提供動力。擁有 25 年的商業經驗和 41 年的編碼專業知識,Jacob 仍專注於推動企業級 C#、Java 及 Python PDF 技術的創新,同時指導新一代技術領袖。