.NET ヘルプ

マスターC#プリント関数:開発者ガイド

チャクニット・ビン
チャクニット・ビン
2024年4月3日
共有:

C#(シーシャープ)での印刷は、開発者にとって基礎的なスキルであり、ユーザーとのコミュニケーションや重要な情報を記録することを可能にします。 Console クラスは、さまざまなシナリオに対応するメソッドの範囲を提供する多用途のツールです。 Microsoft C# プログラミング言語は、紙に印刷するために使用できるPrint メソッドも提供しています。

この包括的な記事では、基本的なテクニック、バリアブル印刷、リスト印刷、高度な機能、そしてIronPrintライブラリの徹底的な調査など、C#印刷の様々な側面を探ります。

Console.WriteLineによる基本的な印刷

C#の印刷の中心にはConsole.WriteLineメソッドがあります。 これは、コンソールにフォーマットされた出力情報を表示するための関数である。 この方法が単純であることは、次の例を見れば明らかだ:

Console.WriteLine("Hello, C# Print Function!"); // string line
Console.WriteLine("Hello, C# Print Function!"); // string line
Console.WriteLine("Hello, C# Print Function!") ' string line
$vbLabelText   $csharpLabel

この1行は、指定された文字列行をコンソールに表示し、その後に改行文字が続く。

変数の印刷

変数値の印刷は一般的な要件です。 C#(シーシャープ)は、文字列の補間や連結によってこれを容易にする。 これはバリアブル印刷の例である:

int age = 25;
Console.WriteLine($"Age: {age}");
int age = 25;
Console.WriteLine($"Age: {age}");
Dim age As Integer = 25
Console.WriteLine($"Age: {age}")
$vbLabelText   $csharpLabel

この場合、age変数の値が文字列に挿入され、動的で有益な出力を提供します。

C# Print 関数(開発者向けの仕組み):図1 - 同じ行の変数出力

ユーザー入力の印刷

よくあるシナリオのひとつは、コンソールにユーザー入力を表示することである。 以下の例を考えてみてください:

Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine($"Hello, {name}!");
Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine($"Hello, {name}!");
Console.Write("Enter your name: ")
Dim name As String = Console.ReadLine()
Console.WriteLine($"Hello, {name}!")
$vbLabelText   $csharpLabel

この場合、プログラムはユーザーに入力を促し、それをキャプチャし、WriteLineメソッドがパーソナライズされた挨拶メッセージを表示する。

リストの印刷

C#(シーシャープ)プログラミング言語ではリストが一般的であり、その要素を印刷することは有用なスキルである。 次のコードは、リストの各要素を改行で表示する方法を示している:

List<string> fruits = new List<string> { "Apple", "Banana", "Orange" };
foreach (var fruit in fruits)
{
    Console.WriteLine(fruit);
}
List<string> fruits = new List<string> { "Apple", "Banana", "Orange" };
foreach (var fruit in fruits)
{
    Console.WriteLine(fruit);
}
Dim fruits As New List(Of String) From {"Apple", "Banana", "Orange"}
For Each fruit In fruits
	Console.WriteLine(fruit)
Next fruit
$vbLabelText   $csharpLabel

このループはリストを繰り返し、それぞれの果物を別々の行に表示する。

列挙型の値の印刷

列挙型は、名前付き定数の集合を表すのによく使われる。 列挙型の値を印刷することで、コード内での使用方法を視覚化し、確認することができます:

enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }
Days today = Days.Wednesday;
Console.WriteLine($"Today is {today}");
enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }
Days today = Days.Wednesday;
Console.WriteLine($"Today is {today}");
Friend Enum Days
	Sunday
	Monday
	Tuesday
	Wednesday
	Thursday
	Friday
	Saturday
End Enum
Private today As Days = Days.Wednesday
Console.WriteLine($"Today is {today}")
$vbLabelText   $csharpLabel

これにより、列挙型で表される現在の選択状態が明確になる。

C# プリント機能 (開発者向けの動作方法): 図 2 - 列挙体出力

改行なしのコンソールへの印刷

テキストコンテンツを印刷する際に、各出力の間に新しい行を挿入したくない場合は、Console.Write メソッドが選択肢です。このメソッドは、出力が次の行に移動するのを防ぎます。

using System;
class Program
{
    public static void Main(object [] sender) // object sender
    {
        Console.Write("This ");
        Console.Write("will ");
        Console.Write("be ");
        Console.Write("on ");
        Console.Write("the ");
        Console.Write("same ");
        Console.Write("line. Even it contains more lines");
    }
}
using System;
class Program
{
    public static void Main(object [] sender) // object sender
    {
        Console.Write("This ");
        Console.Write("will ");
        Console.Write("be ");
        Console.Write("on ");
        Console.Write("the ");
        Console.Write("same ");
        Console.Write("line. Even it contains more lines");
    }
}
Imports System
Friend Class Program
	Public Shared Sub Main(ByVal sender() As Object) ' object sender
		Console.Write("This ")
		Console.Write("will ")
		Console.Write("be ")
		Console.Write("on ")
		Console.Write("the ")
		Console.Write("same ")
		Console.Write("line. Even it contains more lines")
	End Sub
End Class
$vbLabelText   $csharpLabel

このWrite呼び出しのシーケンスは、同じ行に出力を生成し、一貫したプレゼンテーションを維持します。 これがWriteメソッドとWriteLineメソッドの唯一の違いである。

ユニコード文字での印刷

Unicode文字を使って出力を強化し、コンソール・メッセージに華やかさを加えます。 例えば:

Console.WriteLine("Hello \u2665 C#");
// \u2665 represents a heart symbol
Console.WriteLine("Hello \u2665 C#");
// \u2665 represents a heart symbol
Console.WriteLine("Hello " & ChrW(&H2665).ToString() & " C#")
' \u2665 represents a heart symbol
$vbLabelText   $csharpLabel

Unicode文字を組み込むことで、コンソール出力に視覚的に魅力的なタッチを提供します。

Printステートメントによるデバッグ

開発中、print文はデバッグのために非常に貴重である。 Console.WriteLineステートメントをコード内に戦略的に配置することで、変数の値や実行ポイントを出力し、プログラムの流れを理解して問題を特定することができます。

int x = 5;
int y = 10;
int sum = x + y;
Console.WriteLine($"The sum of {x} and {y} is {sum}");
int x = 5;
int y = 10;
int sum = x + y;
Console.WriteLine($"The sum of {x} and {y} is {sum}");
Dim x As Integer = 5
Dim y As Integer = 10
Dim sum As Integer = x + y
Console.WriteLine($"The sum of {x} and {y} is {sum}")
$vbLabelText   $csharpLabel

これは、変数値を追跡し、計算や条件がどのように処理されているかを理解するのに役立つ。

C# 印刷関数 (開発者向けの動作方法): 図 3 - デバッグ出力

複合書式設定

複合文字列フォーマットにより、よりダイナミックで複雑な出力が可能になる。 文字列の中にプレースホルダを埋め込み、それを値で置き換えることができる:

double price = 19.99;
Console.WriteLine("Product: {0}, Price: ${1:F2}", "Widget", price);
double price = 19.99;
Console.WriteLine("Product: {0}, Price: ${1:F2}", "Widget", price);
Dim price As Double = 19.99
Console.WriteLine("Product: {0}, Price: ${1:F2}", "Widget", price)
$vbLabelText   $csharpLabel

ここでは、プレースホルダー{0}および{1}を対応する値に置き換えることで、出力を柔軟に構成する方法を提供しています。

日付と時刻の書式設定

現在の日付と時刻を印刷することは頻繁に要求される。 C#(シーシャープ)には、日付や時刻情報を表示するためのさまざまな書式設定オプションが用意されています:

DateTime currentDate = DateTime.Now;
Console.WriteLine($"Current Date: {currentDate:d}");
Console.WriteLine($"Current Time: {currentDate:t}");
DateTime currentDate = DateTime.Now;
Console.WriteLine($"Current Date: {currentDate:d}");
Console.WriteLine($"Current Time: {currentDate:t}");
Dim currentDate As DateTime = DateTime.Now
Console.WriteLine($"Current Date: {currentDate:d}")
Console.WriteLine($"Current Time: {currentDate:t}")
$vbLabelText   $csharpLabel

書式指定子(dtなど)をカスタマイズすることで、開発者は情報をさまざまな方法で表示することができます。

プリントで例外を処理する

例外が発生した場合、関連情報を印刷することで、問題の特定に役立ちます。 例えば:

try {
      // Some code that may throw an exception
} catch (Exception ex) {
      Console.WriteLine($"Exception Caught: {ex.Message}");
}
try {
      // Some code that may throw an exception
} catch (Exception ex) {
      Console.WriteLine($"Exception Caught: {ex.Message}");
}
Try
	  ' Some code that may throw an exception
Catch ex As Exception
	  Console.WriteLine($"Exception Caught: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

例外メッセージを印刷することで、実行時に問題を素早く診断することができる。

IronPrintで高度な印刷を:C#(シーシャープ)プリントライブラリー

IronPrintは、Iron Softwareによって開発された堅牢で多用途な印刷ライブラリであり、.NET開発者が印刷機能をアプリケーションにシームレスに統合することを可能にします。 この包括的なツールは、Windows、macOS、Android、iOSなど、さまざまなプラットフォームでの互換性が際立っており、多様なプロジェクトに取り組む開発者にとって最適なソリューションとなっている。

C# Print Function(開発者のための作動方法):図4 - IronPrint

IronPrintの強みの一つは、PDF、PNG、HTML、TIFF、GIF、JPEG、BMPといった幅広いファイル形式をサポートしていることです。この柔軟性により、開発者はアプリケーション内で幅広い印刷要件を扱うことができます。 モバイル、デスクトップ、コンソールのいずれのアプリケーションでも、IronPrintは効率的で信頼性の高い印刷のための統合ソリューションを提供します。

IronPrintの機能セットには、カスタマイズ可能な印刷設定が含まれており、開発者は特定のニーズに合わせて印刷体験をカスタマイズすることができます。 さらに、このライブラリには印刷ダイアログを表示するオプションがあり、ユーザーとのインタラクションやコントロールが強化されている。 異なる.NETバージョンやプロジェクト・タイプとの互換性はさらに汎用性を高め、さまざまな開発シナリオに適している。

インストール

IronPrintを使い始めるには、NuGetを使ってパッケージをインストールしてください:

Install-Package IronPrint

基本的な使用法

IronPrintの使い方は簡単です。 次のコードは、IronPrint を使用してドキュメントを印刷します。

using IronPrint;
Printer.Print("document.pdf");
using IronPrint;
Printer.Print("document.pdf");
Imports IronPrint
Printer.Print("document.pdf")
$vbLabelText   $csharpLabel

この最小限のセットアップは、IronPrintが簡単にプロジェクトに統合できることを示しています。

ダイアログで印刷

IronPrintは印刷する前に印刷ダイアログを表示することにより、機能を拡張します。

Printer.ShowPrintDialog("document.pdf");
Printer.ShowPrintDialog("document.pdf");
Printer.ShowPrintDialog("document.pdf")
$vbLabelText   $csharpLabel

この機能により、ユーザーは印刷プロセスをさらにコントロールすることができる。

印刷設定のカスタマイズ

IronPrintは、お客様の要件に応じて印刷設定をカスタマイズすることができます。 以下の例では、DPI、コピー部数、用紙の向きなどの設定をカスタマイズしています:

PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 150;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Portrait; Printer.Print("document.pdf", printSettings);
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 150;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Portrait; Printer.Print("document.pdf", printSettings);
Dim printSettings As New PrintSettings()
printSettings.Dpi = 150
printSettings.NumberOfCopies = 2
printSettings.PaperOrientation = PaperOrientation.Portrait
Printer.Print("document.pdf", printSettings)
$vbLabelText   $csharpLabel

この柔軟性により、特定のニーズに基づいて印刷プロセスを微調整することができます。 IronPrintとその機能についての詳細情報は、こちらのドキュメントページをご覧ください。

クロスプラットフォームサポート

IronPrintはWindows、macOS、Android、iOSなど様々な環境との互換性を誇る。 .NET 8、7、6、5、Core 3.1+、および.NET Framework (4.6.2+) とシームレスに統合されます。 ウェブ、モバイル、デスクトップ、コンソールのいずれの開発においても、IronPrintにお任せください。

結論

C#(シーシャープ)での印刷技術をマスターすることは、堅牢でユーザーフレンドリーなアプリケーションを作成するために不可欠です。 Console クラスの組み込み機能を使用している場合でも、IronPrint のような高度なライブラリを利用している場合でも、これらの印刷技術を理解することは重要です。 この包括的な記事では、さまざまなシナリオで効果的に印刷し、アプリケーションがユーザーや利害関係者とシームレスにコミュニケーションできるようにするための知識を身につけました。

IronPrintは有料ライブラリですが、無料トライアルおよびそのLiteパッケージは$749から始まります。 こちらからライブラリをダウンロードしてください。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
< 以前
C#プリント変数:コードの簡素化
次へ >
C#印刷リスト:クイックチュートリアル