跳過到頁腳內容
.NET幫助

如何有效地使用 C# 打印行

在 C# 中列印行是控制台應用程式的一個基本方面,它涉及在控制台螢幕上顯示文字或指定的值。 在 C# 控制台應用程式中,無論是處理標準輸出流還是格式化字串,了解如何有效地列印行都至關重要。

在本文中,我們將探討與 C# 中列印行相關的各種方法和技巧。

印刷線基礎知識

在 C# 中,列印一行通常需要使用Console.WriteLine方法。 我們先來看一個簡單的例子:

using System;

class Program 
{
    public static void Main() 
    {
        Console.WriteLine("Hello, C# Print Line!");
    }
}
using System;

class Program 
{
    public static void Main() 
    {
        Console.WriteLine("Hello, C# Print Line!");
    }
}
Imports System

Friend Class Program
	Public Shared Sub Main()
		Console.WriteLine("Hello, C# Print Line!")
	End Sub
End Class
$vbLabelText   $csharpLabel

在上面的程式碼中, Console.WriteLine語句輸出指定的字串值("Hello, C# Print Line!"),並在其後加上一個換行符。這是透過WriteLine方法實現的,該方法會在輸出末尾添加一個換行符。

線路終止符

行終止符是表示行結束的特殊字元或序列。最常見的兩個行終止符是回車符( '\r' )和換行符( '\n' )。 在 C# 中, Console.WriteLine方法會根據作業系統自動使用對應的目前行終止符。

public static void Main() 
{
    Console.WriteLine("This is on the first line.");
    Console.WriteLine("This is on the second line.");
}
public static void Main() 
{
    Console.WriteLine("This is on the first line.");
    Console.WriteLine("This is on the second line.");
}
Public Shared Sub Main()
	Console.WriteLine("This is on the first line.")
	Console.WriteLine("This is on the second line.")
End Sub
$vbLabelText   $csharpLabel

在上面的範例中,程式執行後,每個Console.WriteLine都會在 C# 控制台視窗中產生一個新行,從而產生指定的兩行。

C# 列印行(開發者如何操作):圖 1 - 上一段程式碼的控制台輸出

指定線路終端

如果需要明確控制換行符,可以使用Console.Write方法並手動新增所需的換行符:

public static void Main() 
{
    Console.Write("This is on the first line.");
    Console.Write('\r'); // Carriage return
    Console.Write("This is on the same line but very far left position.");
}
public static void Main() 
{
    Console.Write("This is on the first line.");
    Console.Write('\r'); // Carriage return
    Console.Write("This is on the same line but very far left position.");
}
Imports Microsoft.VisualBasic

Public Shared Sub Main()
	Console.Write("This is on the first line.")
	Console.Write(ControlChars.Cr) ' Carriage return
	Console.Write("This is on the same line but very far left position.")
End Sub
$vbLabelText   $csharpLabel

在這個例子中,回車符( '\r' )用於將遊標定位到行首,導致文字的第二部分出現在最左側的位置,即覆蓋先前的輸出。

C# 列印行(開發者如何操作):圖 2 - 控制台輸出範例 \r

列印多行

要列印多行而不重複使用Console.WriteLine語句,可以使用可變長度的參數列表:

public static void Main() 
{
    PrintLines("Line 1", "Line 2", "Line 3");
}

static void PrintLines(params string[] lines) 
{
    foreach (var line in lines) 
    {
        Console.WriteLine(line);
    }
}
public static void Main() 
{
    PrintLines("Line 1", "Line 2", "Line 3");
}

static void PrintLines(params string[] lines) 
{
    foreach (var line in lines) 
    {
        Console.WriteLine(line);
    }
}
Public Shared Sub Main()
	PrintLines("Line 1", "Line 2", "Line 3")
End Sub

Shared Sub PrintLines(ParamArray ByVal lines() As String)
	For Each line In lines
		Console.WriteLine(line)
	Next line
End Sub
$vbLabelText   $csharpLabel

我們建立的PrintLines方法接受一個指定的字串參數數組,允許您傳遞任意數量的換行符號來列印指定的字串值:

C# 列印行(開發人員的使用方法):圖 3 - 使用 PrintLines 方法的控制台輸出

格式化輸出

格式化輸出至關重要,尤其是在處理不同資料類型時。 Console.WriteLine 方法提供了多個重載,它們接受指定的物件和格式資訊:

public static void Main() 
{
    int answer = 42;
    string name = "John Doe";
    Console.WriteLine("The answer is {0}.", answer);
    Console.WriteLine("Hello, {0}!", name);
}
public static void Main() 
{
    int answer = 42;
    string name = "John Doe";
    Console.WriteLine("The answer is {0}.", answer);
    Console.WriteLine("Hello, {0}!", name);
}
Public Shared Sub Main()
	Dim answer As Integer = 42
	Dim name As String = "John Doe"
	Console.WriteLine("The answer is {0}.", answer)
	Console.WriteLine("Hello, {0}!", name)
End Sub
$vbLabelText   $csharpLabel

在這個例子中, {0}是指定物件的佔位符(在本例中是answername ),允許您在輸出中包含可變資料並列印指定的格式資訊。

C# 列印行(開發者使用方法):圖 4 - 顯示格式化的控制台輸出

換行符和Unicode字符

對於特殊換行符或 Unicode 字符,可以使用轉義序列。 您也可以使用 Console.WriteLine 列印任何 ASCII 字面值或有效的 HTML 程式碼。例如,要在同一字串中新增一個單行換行符:

public static void Main() 
{
    Console.WriteLine("This is line 1.\nThis is line 2.");
    Console.WriteLine("Line 1\u000Aline 2");
}
public static void Main() 
{
    Console.WriteLine("This is line 1.\nThis is line 2.");
    Console.WriteLine("Line 1\u000Aline 2");
}
Imports Microsoft.VisualBasic

Public Shared Sub Main()
	Console.WriteLine("This is line 1." & vbLf & "This is line 2.")
	Console.WriteLine("Line 1" & vbLf & "line 2")
End Sub
$vbLabelText   $csharpLabel

這裡, \n\u000A(指定的 Unicode 字元)都表示換行符,導致文字在每種情況下都移到下一行。

C# 列印行(開發者使用方法):圖 5 - 顯示換行符號的控制台輸出

隨機布林值

以下程式碼在Console.WriteLine方法中使用了字串插值。 字串插值是 C# 6.0 中引入的一項功能,它簡化了在字串字面量中嵌入表達式或變數並在控制台應用程式中正確顯示指定的布林值的過程。

using System;

class Program
{
    static void Main()
    {
        Random rnd = new Random();
        for (int i = 1; i <= 5; i++)
        { 
            bool isTrue = rnd.Next(0, 2) == 1;
            Console.WriteLine($"True or False: {isTrue}");
        }
    }
}
using System;

class Program
{
    static void Main()
    {
        Random rnd = new Random();
        for (int i = 1; i <= 5; i++)
        { 
            bool isTrue = rnd.Next(0, 2) == 1;
            Console.WriteLine($"True or False: {isTrue}");
        }
    }
}
Imports System

Friend Class Program
	Shared Sub Main()
		Dim rnd As New Random()
		For i As Integer = 1 To 5
			Dim isTrue As Boolean = rnd.Next(0, 2) = 1
			Console.WriteLine($"True or False: {isTrue}")
		Next i
	End Sub
End Class
$vbLabelText   $csharpLabel

表達式傳回的指定資料將列印在控制台應用程式中,如下所示:

C# 列印行(開發者使用方法):圖 6 - 使用字串插值顯示布林值的控制台輸出

列印不同的數字格式

在程式設計中,列印各種數位格式是一個常見的需求,尤其是在處理雙精度浮點數和單精度浮點數時。 同樣,可以使用Console.WriteLine語句來精確、輕鬆地列印它們。

雙精度浮點數

double doubleValue = 0.123456789;
Console.WriteLine($"Double Precision: {doubleValue:F7}");
double doubleValue = 0.123456789;
Console.WriteLine($"Double Precision: {doubleValue:F7}");
Dim doubleValue As Double = 0.123456789
Console.WriteLine($"Double Precision: {doubleValue:F7}")
$vbLabelText   $csharpLabel

在這個例子中, F7指定雙精度值應格式化為小數點後 7 位元。 您可以調整"F"後面的數字來控制精度。

現有字串

string existingString = "Hello, C#!";
Console.WriteLine($"Existing String: {existingString}");
string existingString = "Hello, C#!";
Console.WriteLine($"Existing String: {existingString}");
Dim existingString As String = "Hello, C#!"
Console.WriteLine($"Existing String: {existingString}")
$vbLabelText   $csharpLabel

列印已存在的字串很簡單。 只需使用Console.WriteLine並包含要顯示的字串即可。

單精度浮點數

float singleValue = 0.123456789f;
Console.WriteLine($"Single Precision: {singleValue:F7}");
float singleValue = 0.123456789f;
Console.WriteLine($"Single Precision: {singleValue:F7}");
Dim singleValue As Single = 0.123456789F
Console.WriteLine($"Single Precision: {singleValue:F7}")
$vbLabelText   $csharpLabel

與雙精確度類似, F7格式說明符在這裡用於單精確度浮點數。 您可以根據精度要求調整"F"後面的數字。

使用 C# 中的 IronPrint 解鎖強大的列印功能

列印文件是許多應用程式的基本功能,而要充分發揮 C# 中的列印潛力,IronPrint 憑藉其多功能性和豐富的功能脫穎而出。

IronPrint簡介

IronPrint由 Iron Software 開發,是一個專為 .NET 生態系統(包括 C#)設計的高階列印庫。 無論您是在開發桌面應用程式、行動應用程式還是 Web 應用程序,IronPrint 都能與您的 C# 專案無縫集成,提供一套全面的工具來處理各種列印需求。

C# 列印行(開發者使用方法):圖 7 - IronPrint 網頁

IronPrint 的主要特點

1. 跨平台相容性:

IronPrint 支援多種作業系統,包括 Windows、macOS、Android 和 iOS。 這種跨平台相容性確保您的列印解決方案能夠覆蓋不同環境下的使用者。

2. .NET 版本支援:

IronPrint 相容於 .NET Framework 4.6.2 及以上版本、.NET Core 3.1+ 以及最新的 .NET 版本,涵蓋範圍廣泛。

3. 專案類型支援:

IronPrint 可滿足不同項目類型的需求,包括行動裝置(Xamarin 和 MAUI)、桌面端(WPF 和 MAUI)以及控制台端(應用程式和函式庫)。 這種靈活性使其適用於各種應用架構。

4. 安裝簡單:

IronPrint 入門非常簡單。 您可以使用 NuGet 套件管理器控制台並執行Install-Package IronPrint命令來快速安裝該程式庫。

IronPrint 的基本用法

以下是一個簡單的範例,示範了在 C# 控制台應用程式中使用 IronPrint列印文件是多麼容易:

using IronPrint;

class Program
{
    static void Main()
    {
        Console.WriteLine("Printing Started...");
        // Silent printing of a document
        Printer.Print("document.pdf");
        // Or display a print dialog
        Printer.ShowPrintDialog("document.pdf");
        Console.WriteLine("Printing Completed...");
    }
}
using IronPrint;

class Program
{
    static void Main()
    {
        Console.WriteLine("Printing Started...");
        // Silent printing of a document
        Printer.Print("document.pdf");
        // Or display a print dialog
        Printer.ShowPrintDialog("document.pdf");
        Console.WriteLine("Printing Completed...");
    }
}
Imports IronPrint

Friend Class Program
	Shared Sub Main()
		Console.WriteLine("Printing Started...")
		' Silent printing of a document
		Printer.Print("document.pdf")
		' Or display a print dialog
		Printer.ShowPrintDialog("document.pdf")
		Console.WriteLine("Printing Completed...")
	End Sub
End Class
$vbLabelText   $csharpLabel

此處的輸出顯示了使用PrintShowPrintDialog方法列印文件的過程。 如果未安裝實體印表機,則使用預設印表機進行列印。

C# 列印行(開發者使用方法):圖 8 - 列印開始彈出視窗和儲存列印輸出彈出視窗

先進的列印功能

IronPrint 不僅限於基本的列印任務,還提供以下進階功能:

  • 靜默列印:使用Printer.PrintAsync列印文件而不顯示對話方塊。
  • 自訂列印設定:使用PrintSettings類別微調列印參數。
  • 非同步列印:非同步執行列印操作,以防止阻塞主執行緒。
  • 選擇印表機: GetPrinterNames方法可讓您從可用印表機中進行選擇,從而對列印過程進行更精細的控制。

平台特定調整

IronPrint 可讓您針對不同的平台客製化列印解決方案。 例如,在使用特定平台(如 Windows、Android、iOS 或 macOS)的 .NET Core 專案時,您可以相應地調整專案檔案中的TargetFrameworks屬性。

要了解有關 IronPrint 的更多詳細信息,請訪問此文件API 參考頁面。

結論

在 C# 中列印行是控制台應用程式開發的基礎技能。 無論你是顯示文字、格式化輸出還是控制行終止符,了解各種可用的技術都將增強你創建有效且易讀的控制台程式的能力。 探索Console類別提供的各種方法,嘗試不同的格式化選項,並利用 C# 的靈活性,在應用程式中產生清晰且結構良好的控制台輸出。

IronPrint 成為 C# 開發人員尋求強大且靈活的列印功能的強大助手。 IronPrint 具有跨平台支援、與各種 .NET 版本相容以及進階列印功能,簡化了在各種 C# 應用程式中實現列印解決方案的過程。 無論您是為桌面、行動裝置或 Web 開發,IronPrint 都能提供您所需的工具,將您的列印需求在 C# 開發世界中變為現實。

IronPrint 為商業用途提供免費試用版。 從這裡下載庫檔案並試用一下。

常見問題解答

如何在 C# 控制台應用程式中列印文字?

若要在 C# 主控台應用程式中列印文字,您可以使用 Console.WriteLine 方法,此方法會輸出指定的字串值,接著換一行。如需更多控制,可使用 Console.Write 手動管理行終止符。

在 C# 中控制行終止符的技巧有哪些?

在 C# 中,您可以使用 Console.Write 方法來控制行終止符,並附加類似 '\n「 之類的字符來表示新行或 」\r' 之類的字符來表示回車。

如何使用 C# 一次列印多行?

您可以一次列印多行,方法是建立一個接受可變長度參數清單的方法,並使用 Console.WriteLine 遍歷要列印的每一行。

C# 的多功能列印函式庫應該具備哪些功能?

C# 的多功能列印函式庫應支援跨平台功能、各種 .NET 版本以及多樣化的專案類型。如 IronPrint 所提供的無聲列印、自訂列印設定、同步列印和印表機選擇等功能是不可或缺的。

如何在 C# 控制台應用程式中格式化輸出?

您可以在 C# 主控台應用程式中使用 Console.WriteLine 來格式化輸出,並使用像 {0} 之類的占位符來表示變數或表達式,允許動態內容顯示。

我可以在 C# 控制台輸出中使用特殊的換行符及 Unicode 嗎?

是的,您可以使用轉義序列(例如 '\n「 )來換行,並在控制台輸出中使用 」\u000A' 等代碼來包含 Unicode 字元。

如何在 C# 中精確列印數值?

若要在 C# 中精確列印數值,請在 Console.WriteLine 中使用格式指定符,如 'F2' 用於浮點數,以定義小數位數。

C# 列印函式庫有哪些進階功能?

C# 列印函式庫的進階功能包括無聲列印、自訂列印設定、同步列印和印表機選擇,這些功能可透過 IronPrint 中的 Printer.PrintAsyncGetPrinterNames 等方法實現。

如何在我的 C# 專案中安裝全面的列印函式庫?

您可以透過 NuGet 套件管理員控制台,使用 Install-Package IronPrint 指令在您的 C# 專案中安裝 IronPrint 之類的列印函式庫。

綜合 C# 列印函式庫是否提供免費試用?

是的,IronPrint 可提供免費試用,這是一個全面的 C# 列印函式庫,可從 Iron Software 網站下載,用於商業用途。

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 技術的創新,同時指導新一代技術領袖。