フッターコンテンツにスキップ
.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メソッドによって達成され、出力の最後に行終端記号を追加します。

行終端記号

行終端記号は、行の終わりを示す特別な文字またはシーケンスです。最も一般的な2つの行終端記号は、キャリッジリターン('\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 (開発者向けの動作方法): Figure 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# Print Line (開発者向けの動作方法): Figure 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 (開発者向けの動作方法): Figure 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 (開発者向けの動作方法): Figure 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

ここで、\n\u000A,指定されたUnicode文字はどちらも行フィード文字を表し、それぞれのケースでテキストを次の行に進めます。

C# Print Line (開発者向けの動作方法): Figure 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 (開発者向けの動作方法): Figure 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によって開発された、C#を含む.NETエコシステム向けの高度な印刷ライブラリです。 デスクトップ、モバイル、またはWebアプリケーションで作業しているかどうかに関係なく、IronPrintはシームレスにC#プロジェクトに統合され、さまざまな印刷ニーズを処理する包括的なツールセットを提供します。

C# Print Line (開発者向けの動作方法): Figure 7 - IronPrintウェブページ

IronPrintの主な機能

1. クロスプラットフォーム互換性:

IronPrintはWindows、macOS、Android、iOSを含むさまざまなオペレーティングシステムをサポートしています。 このクロスプラットフォーム互換性により、印刷ソリューションが異なる環境のユーザーに到達することが保証されます。

2. .NETバージョンサポート:

.NET Framework 4.6.2以上、.NET Core 3.1+、および最新の.NETバージョンと互換性があり、IronPrintは広範囲の.NET環境をカバーします。

3. プロジェクトタイプサポート:

IronPrintは、モバイル(Xamarin & MAUI)、デスクトップ(WPF & MAUI)、コンソール(App & Library)を含むさまざまなプロジェクトタイプに対応しています。 この柔軟性により、さまざまなアプリケーションアーキテクチャに適しています。

4. 簡単なインストール:

IronPrintの入門は簡単です。 NuGet Package Manager Consoleを使用してライブラリを迅速にインストールし、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# Print Line (開発者向けの動作方法): Figure 8 - 印刷開始ポップアップおよび印刷出力保存ポップアップ

高度な印刷機能

IronPrintは基本的な印刷タスクを超えて、高度な機能を提供します:

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

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

IronPrintは、異なるプラットフォーム向けに印刷ソリューションを調整することを可能にします。 例えば、Windows、Android、iOS、macOSなどの特定のプラットフォームをターゲットにした.NET Coreプロジェクトで作業する場合、プロジェクトファイル内でTargetFrameworksプロパティを適切に調整することができます。

To get more detailed information on IronPrint, please visit this documentation and API reference pages.

結論

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 のウェブサイトからダウンロードできます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。