C# 印刷ラインを効果的に使用する方法
C# で行を印刷することは、コンソール アプリケーションの基本的な側面であり、コンソール画面にテキストまたは指定された値を表示することが含まれます。 標準出力ストリームを使用する場合でも、文字列をフォーマットする場合でも、C# コンソール アプリケーションでは行を効率的に印刷する方法を理解することが重要です。
この記事では、C# で行を印刷することに関連するさまざまな方法とテクニックについて説明します。
印刷ラインの基本
C# では、行を印刷するには、多くの場合、 Console.WriteLineメソッドを使用します。 まずは簡単な例を見てみましょう。
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 ClassImports System
Friend Class Program
Public Shared Sub Main()
Console.WriteLine("Hello, C# Print Line!")
End Sub
End Class上記のコードでは、 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 SubPublic Shared Sub Main()
Console.WriteLine("This is on the first line.")
Console.WriteLine("This is on the second line.")
End Sub上記の例では、プログラムの実行後、各Console.WriteLineによって C# コンソール ウィンドウに新しい行が生成され、指定された 2 つの行が生成されます。

行末文字の指定
行末文字を明示的に制御する必要がある場合は、 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 SubImports 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この例では、キャリッジリターン ( '\r' ) を使用してカーソルを行の先頭に配置し、テキストの 2 番目の部分が左端の位置に表示される (つまり、前の出力が上書きされる) ようになります。

複数行の印刷
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 SubPublic 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作成した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 SubPublic 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この例では、 {0}は指定されたオブジェクト (この場合はanswerとname ) のプレースホルダーであり、出力に変数データを含め、指定された形式情報を出力することができます。

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

ランダムブール値
以下のコードでは、 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 ClassImports 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式から返された指定されたデータは、以下に示すようにコンソール アプリケーションに出力されます。

さまざまな数値形式の印刷
さまざまな数値形式を印刷することは、特に倍精度浮動小数点数や単精度浮動小数点数を扱う場合のプログラミングでは一般的な要件です。 ここでも、 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}")Dim doubleValue As Double = 0.123456789
Console.WriteLine($"Double Precision: {doubleValue:F7}")この例では、 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}")Dim existingString As String = "Hello, C#!"
Console.WriteLine($"Existing String: {existingString}")既存の文字列を印刷するのは簡単です。 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}")Dim singleValue As Single = 0.123456789F
Console.WriteLine($"Single Precision: {singleValue:F7}")倍精度と同様に、ここでは単精度浮動小数点にF7形式指定子が使用されます。 精度の要件に応じて、"F"の後の数字を調整できます。
Unlocking Powerful Printing Capabilities with IronPrint in C#
ドキュメントの印刷は多くのアプリケーションの基本的な側面であり、C# で印刷の可能性を最大限に活用する場合、IronPrint は多用途で機能豊富なライブラリとして際立っています。
IronPrintの紹介
Iron Software によって開発されたIronPrint は、C# を含む .NET エコシステム向けに設計された高度な印刷ライブラリです。 デスクトップ、モバイル、Web アプリケーションのいずれで作業する場合でも、IronPrint は C# プロジェクトとシームレスに統合され、さまざまな印刷ニーズに対応するための包括的なツール セットを提供します。

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

高度な印刷機能
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 は商用利用向けに無料トライアルを提供しています。 ここからライブラリをダウンロードして試してください。
ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。