フッターコンテンツにスキップ
.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# コンソール ウィンドウに新しい行が生成され、指定された 2 つの行が生成されます。

! C# の Print Line (開発者向け機能): 図 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' ) を使用してカーソルを行の先頭に配置し、テキストの 2 番目の部分が左端の位置に表示される (つまり、前の出力が上書きされる) ようになります。

! C# の Print Line (開発者向け機能): 図 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# の Print Line (開発者向け機能説明): 図 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# の Print Line (開発者向け機能): 図 4 - 書式設定を示すコンソール出力

改行とUnicode文字

特殊な改行や Unicode 文字の場合は、エスケープ シーケンスを使用できます。 Console.WriteLine を使用すると、任意の ASCII リテラルまたは有効な HTML コードを出力することもできます。例えば、同じ文字列に 1 行の改行を挿入するには、次のようにします。

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

ここで、指定された Unicode 文字\n\u000A はどちらも改行文字を表し、いずれの場合もテキストを次の行に移動します。

! C# の Print Line (開発者向け機能): 図 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# の Print Line (開発者向け機能): 図 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 は、double 値を小数点以下 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の紹介

Iron Software によって開発されたIronPrint は、C# を含む .NET エコシステム向けに設計された高度な印刷ライブラリです。 デスクトップ、モバイル、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 バージョンと互換性があり、幅広い .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

ここでの出力は、 PrintおよびShowPrintDialogメソッドを使用したドキュメントの印刷を示しています。 物理プリンターがインストールされていない場合は、デフォルトのプリンターが印刷に使用されます。

! C# 印刷行 (開発者向けの仕組み): 図 8 - 印刷開始ポップアップと印刷出力保存ポップアップ

高度な印刷機能

IronPrint は基本的な印刷タスクを超え、次のような高度な機能を提供します。

  • サイレント印刷: Printer.PrintAsyncを使用して、ダイアログを表示せずにドキュメントを印刷します。
  • カスタム印刷設定: PrintSettingsクラスを使用して印刷パラメータを微調整します。
  • 非同期印刷: メイン スレッドがブロックされないように、印刷操作を非同期に実行します。
  • プリンターの選択: GetPrinterNamesメソッドを使用すると、利用可能なプリンターを選択して、印刷プロセスをより細かく制御できます。

プラットフォーム固有の調整

IronPrint を使用すると、さまざまなプラットフォームに合わせて印刷ソリューションをカスタマイズできます。 たとえば、Windows、Android、iOS、macOS などの特定のプラットフォームを対象とする .NET Core プロジェクトで作業する場合は、プロジェクト ファイル内のTargetFrameworksプロパティをそれに応じて調整できます。

IronPrint の詳細情報を取得するには、このドキュメントAPI リファレンスページをご覧ください。

結論

C# で行を印刷することは、コンソール アプリケーション開発の基本的なスキルです。 テキストの表示、出力のフォーマット、行末記号の制御など、さまざまな手法を理解することで、効果的で読みやすいコンソール プログラムを作成する能力が向上します。 Consoleクラスが提供するさまざまなメソッドを調べ、書式設定オプションを試し、C# の柔軟性を活用して、アプリケーションで明確で構造化されたコンソール出力を生成します。

IronPrint は、堅牢かつ柔軟な印刷機能を求める C# 開発者にとって強力な味方となります。 クロスプラットフォームのサポート、さまざまな .NET バージョンとの互換性、高度な印刷機能を備えた IronPrint は、さまざまな 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 コマンドを使用し、IronPrint のような印刷ライブラリを C# プロジェクトにインストールできます。

包括的な C# 印刷ライブラリの無料トライアルは利用できますか?

はい、包括的な C# 印刷ライブラリ IronPrint の無料トライアルが利用可能であり、商用利用のための Iron Software のウェブサイトからダウンロードできます。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

Jacob Mellorは、Iron Softwareの最高技術責任者であり、C# PDF技術の開拓者としてその先進的な役割を担っています。Iron Softwareのコアコードベースのオリジナルデベロッパーである彼は、創業時から製品のアーキテクチャを形作り、CEOのCameron Rimingtonと協力してNASA、Tesla、全世界の政府機関を含む50人以上の会社に成長させました。

Jacobは、1998年から2001年にかけてマンチェスター大学で土木工学の第一級優等学士号(BEng)を取得しました。1999年にロンドンで最初のソフトウェアビジネスを立ち上げ、2005年には最初の.NETコンポーネントを作成し、Microsoftエコシステムにおける複雑な問題の解決を専門にしました。

彼の旗艦製品であるIronPDFとIronSuite .NETライブラリは、全世界で3000万以上のNuGetインストールを達成しており、彼の基本コードが世界中で使用されている開発者ツールを支えています。商業的な経験を25年間積み、コードを書くことを41年間続けるJacobは、企業向けのC#、Java、およびPython PDF技術の革新を推進し続け、次世代の技術リーダーを指導しています。