.NET 幫助

C# 引用传递(對開發者的運作方式)

發佈 2024年8月13日
分享:

介紹

在程式設計領域中,有效的記憶體管理和資料操作是構建高效性能代碼的基本組成部分。 撰寫有效且無錯誤的程式碼需要瞭解資料是如何被處理的。傳輸在像 C# 這樣的語言中,方法和函數之間的區別。 在此程序中至關重要的一個概念是「引用傳遞」。在本文中,我們將探討在C#中的引用傳遞意義及適當的使用情境。

如何使用 C# 引用傳遞

  1. 定義具有 Ref 參數的方法。

  2. 初始化變數。

  3. 使用 Ref 關鍵字調用方法。

  4. 修改方法內的變數。

  5. 觀察 Main 方法中的變化。

  6. 定義另一個具有傳出參數的方法來生成 PDF。

  7. 初始化並呼叫 Out 方法。

什麼是 C# 中的引用傳遞?

利用參考來傳遞指的是在C#中透過給被調用方法的初始變數的參考而不是其值的副本來發送參數到函數或方法的方式。 這意味著在方法內對參數所做的任何更改也會對方法外的初始變量產生影響。

C# 中的值類型變數(例如 int、float、bool 等。)通常由值提供,這是一個引用參數,意味著方法接收到的是變量值的副本。 儘管如此,您可以使用 ref 關鍵字告訴編譯器按引用傳遞參數。

使用 ref 關鍵字

在C#中,可以使用ref關鍵字來為通過引用傳遞的參考參數進行說明。 使用 ref 關鍵字引用傳遞的參數所做的任何修改都會影響原始變數。

class Program
{
    static void Main(string[] args)
    {
        int num = 10;
        Console.WriteLine("Before: " + num); // Output: Before: 10
        ModifyByRef(ref num);
        Console.WriteLine("After: " + num);  // Output: After: 20
    }
    static void ModifyByRef(ref int x)
    {
        x = x * 2;
    }
}
class Program
{
    static void Main(string[] args)
    {
        int num = 10;
        Console.WriteLine("Before: " + num); // Output: Before: 10
        ModifyByRef(ref num);
        Console.WriteLine("After: " + num);  // Output: After: 20
    }
    static void ModifyByRef(ref int x)
    {
        x = x * 2;
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

上述例中的 ModifyByRef 方法使用 ref 關鍵字按引用方式接受整數參數 x。 當方法使用 ref num 調用時,對方法內 ref 參數 x 的任何修改都會立即影響到方法外的 num 變量。

out 關鍵字

out 關鍵字用於將參數以引用方式傳遞給調用方法,與 ref 類似。 因此,方法可以返回多個值。

class Program
{
    static void Main(string[] args)
    {
        int result;
        Calculate(10, 5, out result);
        Console.WriteLine("Result: " + result); // Output: Result: 15
    }
    static void Calculate(int x, int y, out int result)
    {
        result = x + y;
    }
}
class Program
{
    static void Main(string[] args)
    {
        int result;
        Calculate(10, 5, out result);
        Console.WriteLine("Result: " + result); // Output: Result: 15
    }
    static void Calculate(int x, int y, out int result)
    {
        result = x + y;
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

在此範例中,兩個整數參數 x 和 y,以及由 out 關鍵字表示的額外參數 result,被傳遞給 Calculate 方法。 在程序計算 x 和 y 的總和後,結果被分配給結果參數。 由於結果標記為 out,因此在發送到方法之前不需要進行初始化。

何時使用參考傳遞

撰寫高效且易維護的代碼需要知道何時使用引用傳遞。 以下情況需要使用多個引用傳遞的值:

修改多個變量

當需要更改多個變量且這些更改需要在方法之外反映時,通過引用傳遞參數可能會有所幫助。 與其讓程序返回多個值,不如通過引用傳遞變量,並直接在方法中進行更改。

static void ModifyMultipleByRef(ref int a, ref int b)
{
    a *= 2;
    b *= 3;
}
static void ModifyMultipleByRef(ref int a, ref int b)
{
    a *= 2;
    b *= 3;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

大型數據結構

透過參數傳址的方式傳遞大型數據結構(如陣列或複雜對象),可以提高效率,從而防止不必要的數據重複。 在處理大型資料結構時,應對引用傳遞保有謹慎,因為如果未妥善處理,可能會產生意想不到的後果。

與外部代碼的互操作性

在與外部庫互動或整合本地代碼時,可能有必要通過引用傳遞參數,以遵循方法定義和外部代碼的要求。

什麼是 IronPDF?

C# 程式庫IronPDF for .NET 應用程式允許程式設計師在 .NET 應用程序內創建、修改和呈現 PDF 文件。 其豐富的功能集使處理 PDF 文件變得簡單。 您可以從HTML、照片和其他格式創建PDF文件; 以文字、圖片和其他數據註解PDF檔案; 並分割、合併和編輯現有的 PDF 文件。

IronPDF 的主要功能是其轉換能力HTML轉PDF確保保留版面和樣式。 此功能非常適合從基於網頁的內容生成 PDF,如報告、發票和文檔。 它將 HTML 文件、URL 和 HTML 字符串轉換為 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");
    }
}
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
VB   C#

IronPDF 的功能

文字和圖像註解

IronPDF 允許您以程式方式將文字、圖像和註解添加到 PDF 文件中。 由於此功能,您可以使用簽名、印章和備註來註釋 PDF 文件。

PDF 安全性

IronPDF 允許您指定不同的權限,包括打印、複製內容和編輯文檔,並且可以使用密碼加密 PDF 文檔。 這有助於您控制對 PDF 檔案的存取,並保護敏感資料。

填寫互動式 PDF 表單

IronPDF 允許您以程式方式填寫互動式 PDF 表單。 此功能對於使用者輸入製作自訂文件或自動化表單提交非常有幫助。

PDF 壓縮和優化

為了在不犧牲品質的情況下最小化文件大小,IronPDF 提供了壓縮和優化 PDF 文件的解決方案。 這降低了 PDF 文件所需的存儲量,同時也提升了性能。

跨平台相容性

IronPDF 能夠在專為 Windows、Linux 和 macOS 等平台設計的 .NET 應用程序中流暢運行。 受歡迎的 .NET 框架如 ASP.NET、.NET Core 和 Xamarin 都與其集成。

建立一個新的 Visual Studio 專案

使用 Visual Studio 創建控制台專案很容易。 要在 Visual Studio 中建立主控台應用程式,請執行以下步驟:

開始之前Visual Studio 開發,請確保您已安裝在您的電腦上。

開始新專案

選擇檔案,然後選擇新增,最後選擇專案。

C# 引用類型的傳遞 (開發人員如何使用): 圖1

在“創建新專案”框的左側,選擇您偏好的程式語言(例如 C#).

「Console App」或「Console App」(.NET Core)可以從以下參考類型的專案模板清單中選擇模板。

在「名稱」欄位中為您的專案提供一個名稱。

C# 以參考傳遞(給開發人員的運作原理):圖2

選擇您希望儲存專案的儲存位置。

按「建立」以啟動主控台應用程式專案。

C# 引用傳遞(開發者如何使用):圖3

安裝 IronPDF

在 Visual Studio 工具中的工具下,您可以找到 Visual Command-Line 介面。 選擇 NuGet 的套件管理器。 在套件管理終端標籤上,您必須輸入以下指令。

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
VB   C#

另一個替代方案是使用套件管理器。 可以使用 NuGet 套件管理器選項直接將該套件安裝到解決方案中。 使用 NuGet 網站上的搜尋框來尋找套件。 以下示例截圖展示了在包管理器中查找 "IronPDF" 的簡易性:

C# 參考傳遞(開發人員如何操作):圖 4 - 從 NuGet 套件管理器安裝 IronPDF

相關搜尋結果的列表可以在上面的圖片中看到。 為了在您的機器上安裝該軟體,請調整這些設定。

下載並安裝套件後,可在當前專案中使用。

使用引用傳遞與IronPDF

這是一個如何使用 IronPDF 的引用傳遞功能的示例。

using IronPdf;
using System;
class Program
{
    static void Main(string[] args)
    {
        // Create a PDF document
        var pdf = new IronPdf.HtmlToPdf();
        // HTML content to be converted to PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1>";
        // Create a byte array to store the PDF content
        byte[] pdfBytes;
        // Convert HTML to PDF and pass the byte array by reference
        ConvertHtmlToPdf(pdf, htmlContent, out pdfBytes);
        // Save or process the PDF content
        // For demonstration, let's print the length of the PDF content
        Console.WriteLine("Length of PDF: " + pdfBytes.Length);
    }
    static void ConvertHtmlToPdf(IronPdf.HtmlToPdf pdfConverter, string htmlContent, out byte[] pdfBytes)
    {
        // Convert HTML to PDF and store the result in the byte array
        var pdfDoc = pdfConverter.RenderHtmlAsPdf(htmlContent);
        pdfBytes = pdfDoc.BinaryData;
    }
}
using IronPdf;
using System;
class Program
{
    static void Main(string[] args)
    {
        // Create a PDF document
        var pdf = new IronPdf.HtmlToPdf();
        // HTML content to be converted to PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1>";
        // Create a byte array to store the PDF content
        byte[] pdfBytes;
        // Convert HTML to PDF and pass the byte array by reference
        ConvertHtmlToPdf(pdf, htmlContent, out pdfBytes);
        // Save or process the PDF content
        // For demonstration, let's print the length of the PDF content
        Console.WriteLine("Length of PDF: " + pdfBytes.Length);
    }
    static void ConvertHtmlToPdf(IronPdf.HtmlToPdf pdfConverter, string htmlContent, out byte[] pdfBytes)
    {
        // Convert HTML to PDF and store the result in the byte array
        var pdfDoc = pdfConverter.RenderHtmlAsPdf(htmlContent);
        pdfBytes = pdfDoc.BinaryData;
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

在此範例中,ConvertHtmlToPdf 函數接受三個參數:HTML 內容、一個名為 pdfBytes 的位元組陣列,以及一個 IronPDF HtmlToPdf 物件。 out 關鍵字表示 pdfBytes 參數是以參考方式提供,且會在方法中被更改。

C# 按引用传递(开发人员如何使用):圖5

HTML內容使用IronPDF在ConvertHtmlToPdf函式中渲染為PDF文件,結果的二進位資料存儲在pdfBytes陣列中。

我們使用IronPDF HTML 轉換為 PDF再次在 Main 函數中,通過引用傳遞 pdfBytes 陣列。 在方法調用之後,IronPDF 的 PDF 內容將存儲在 pdfBytes 陣列的記憶體位置中。

C# 引用傳遞(開發者的工作原理):圖 6

這將向您展示如何使用IronPDF和C#中的引用傳遞有效地創建和處理PDF文件。

結論

總結來說,在 C# 中使用 IronPDF 的引用傳遞功能能大幅提升在 .NET 程式中創建和修改 PDF 文件的功能。 有效使用 refout 關鍵字可讓開發人員輕鬆地透過引用傳遞參數,使得在方法內快速有效地修改變量和內容成為可能。 IronPDF 的豐富功能範圍,包括將 HTML 轉換為 PDF、基於圖像生成 PDF,以及執行廣泛的 PDF 修改任務,使開發人員能夠輕鬆構建動態和互動式 PDF 文檔。

IronPDF 提供加速文檔處理過程所需的工具和 API,包括拆分、合併、註釋和優化 PDF 文件。 此外,PDF 的跨平台互操作性可保證 C# 應用程式能輕鬆在各種環境中整合 PDF 功能。 基本上,開發人員可以通過將 C# 的傳遞引用功能與 IronPDF 的豐富功能集融合,創建、修改和顯示其應用程式中的 PDF 文件的新途徑。

最後,您可以有效地處理 Excel、製作 PDF、執行 OCR 以及使用條碼。 每個程式庫的定價從 $749 開始. 如果有針對項目需求量身打造的明確授權選項,開發人員可以有信心地選擇最佳模型。 有了這些優勢,開發人員可以高效且透明地克服各種挑戰。

< 上一頁
NServiceBus C#(如何為開發人員工作)
下一個 >
EasyNetQ .NET(對開發者來說如何運作)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >