ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
今日は、C#の世界に入り、強力な機能であるデフォルトパラメータについて学びます。 理解しやすいように、C#のデフォルト引数値とオプション引数の概念に焦点を当てて、説明していきます。
C#ではデフォルトパラメータまた、オプション引数パラメーターとも呼ばれるは、メソッド定義において固定引数に値を割り当てることを可能にします。 そのパラメーターの引数が関数の呼び出し時に指定されない場合、デフォルト値が使用されます。
デフォルトのパラメータ値は、下記のコードスニペットに示されるように、メソッド定義で次のように設定されます:
public void Greet(string name = "Friend")
{
Console.WriteLine("Hello, " + name);
}
public void Greet(string name = "Friend")
{
Console.WriteLine("Hello, " + name);
}
Public Sub Greet(Optional ByVal name As String = "Friend")
Console.WriteLine("Hello, " & name)
End Sub
ここでは、パラメーター name
はオプションの属性です。 文字列「Friend」はデフォルト値です。 以下の内容を日本語に翻訳します:
If you call Greet
, it will display a welcome message to the user.
Greet
を呼び出すと、ユーザーにウェルカムメッセージが表示されます。()引数を渡さない場合、「Friend」がname
の値として使用されます。
必須パラメーターとは、関数やメソッドが呼び出される際に必ず含まれていなければならないパラメーターのことです。 デフォルト値が設定されていないため、常に引数を提供する必要があります。 コンパイラは関数またはメソッドの呼び出しをチェックし、必要なパラメーターが指定されていない場合、コンパイル時エラーを投げます。
例を考えてみましょう:
//pass arguments in the same order
public void IntroduceYourself(string firstName, string lastName)
{
Console.WriteLine("Hello, my name is " + firstName + " " + lastName);
}
//pass arguments in the same order
public void IntroduceYourself(string firstName, string lastName)
{
Console.WriteLine("Hello, my name is " + firstName + " " + lastName);
}
'pass arguments in the same order
Public Sub IntroduceYourself(ByVal firstName As String, ByVal lastName As String)
Console.WriteLine("Hello, my name is " & firstName & " " & lastName)
End Sub
このメソッドでは、firstName
と lastName
の両方が必須パラメーターです。 IntroduceYourself
を呼び出すときは、両方のパラメータに値を指定する必要があります。 引数を省略すると、コンパイル時エラーが発生します。
IntroduceYourself("John", "Doe"); // Following call is correct
IntroduceYourself("John"); // Error: lastName is missing
IntroduceYourself("John", "Doe"); // Following call is correct
IntroduceYourself("John"); // Error: lastName is missing
IntroduceYourself("John", "Doe") ' Following call is correct
IntroduceYourself("John") ' Error: lastName is missing
一方で、オプションパラメーターは柔軟性を提供します。 メソッド定義内にデフォルト値が設定されており、メソッドがそのパラメーターなしで呼び出された場合に使用されます。
例えば、IntroduceYourself
メソッドを変更して、lastName
パラメーターをオプションにしてみましょう。
//named arguments
public void IntroduceYourself(string firstName, string lastName = "Doe")
{
Console.WriteLine("Hello, my name is " + firstName + " " + lastName);
}
//named arguments
public void IntroduceYourself(string firstName, string lastName = "Doe")
{
Console.WriteLine("Hello, my name is " + firstName + " " + lastName);
}
'named arguments
Public Sub IntroduceYourself(ByVal firstName As String, Optional ByVal lastName As String = "Doe")
Console.WriteLine("Hello, my name is " & firstName & " " & lastName)
End Sub
今、IntroduceYourself
をfirstName
パラメーターだけで呼び出すことができます。 その場合、lastName
はデフォルトで「Doe」になります。
IntroduceYourself("John", "Smith"); // Outputs: Hello, my name is John Smith
IntroduceYourself("John"); // Outputs: Hello, my name is John Doe
IntroduceYourself("John", "Smith"); // Outputs: Hello, my name is John Smith
IntroduceYourself("John"); // Outputs: Hello, my name is John Doe
IntroduceYourself("John", "Smith") ' Outputs: Hello, my name is John Smith
IntroduceYourself("John") ' Outputs: Hello, my name is John Doe
オプションの引数を指定すると、デフォルト値が上書きされます。
メソッド宣言では、必須パラメーターは常にオプションパラメーターの前に記載する必要があることを忘れないでください。
必須または名前付きパラメーターとオプションパラメーターの区別は重要です。これは、メソッドの呼び出し方法に影響を与えるからです。 オプションパラメーターは柔軟性を提供し、必要ない特定のパラメーターの入力を省略することができます。 一方、必須パラメータは、関数やメソッドに常に必要なデータが提供されることを保証し、実行時エラーを防ぐのに役立ちます。
デフォルトパラメータを使用してメソッドを定義する際には、いくつかの重要なルールを覚えておく必要があります:
デフォルト値は定数式でなければなりません。 変数やメソッド呼び出しを使用することはできません。
すべてのオプションパラメータは、必要なパラメータの後にパラメータリストの末尾に定義しなければなりません。
メソッドを任意のパラメーターと共に呼び出すとき、定義された順序で省略された引数を提供することができます。または、名前付き引数を使用することもできます。
オプションの引数値が提供されていない場合、デフォルト値が使用されます。
次のコードスニペットの位置引数を考慮してください:
static void Main(string[] args)
{
ShowMessage("Hello");
ShowMessage("Hello", "John");
}
public static void ShowMessage(string msg, string name = "Friend")
{
Console.WriteLine(msg + ", " + name);
}
static void Main(string[] args)
{
ShowMessage("Hello");
ShowMessage("Hello", "John");
}
public static void ShowMessage(string msg, string name = "Friend")
{
Console.WriteLine(msg + ", " + name);
}
Shared Sub Main(ByVal args() As String)
ShowMessage("Hello")
ShowMessage("Hello", "John")
End Sub
Public Shared Sub ShowMessage(ByVal msg As String, Optional ByVal name As String = "Friend")
Console.WriteLine(msg & ", " & name)
End Sub
静的な Main
メソッド内で、ShowMessage
を2回呼び出します。最初の呼び出しでは引数を1つだけ渡すので、name
パラメータはデフォルト値の「Friend」を使用します。 2回目に2つの引数を渡すため、「John」がデフォルト値の代わりに使用されます。
C#は名前付きおよびオプションのパラメーターもサポートしています。 名前付きパラメーターを使用すると、位置ではなく名前でパラメーターの値を指定できます。 これは、メソッドに複数のオプションパラメータがあり、1つの値を提供したいが他の値を提供したくない場合に役立ちます。
以下の例では、ShowGreetings
には2つのオプションのパラメーターがあります:
public static void ShowGreetings(string greeting = "Hello", string name = "Friend")
{
Console.WriteLine(greeting + ", " + name);
}
public static void ShowGreetings(string greeting = "Hello", string name = "Friend")
{
Console.WriteLine(greeting + ", " + name);
}
Public Shared Sub ShowGreetings(Optional ByVal greeting As String = "Hello", Optional ByVal name As String = "Friend")
Console.WriteLine(greeting & ", " & name)
End Sub
このメソッドは最初のパラメータだけで呼び出すことができます:
ShowGreetings("Hi");
ShowGreetings("Hi");
ShowGreetings("Hi")
または、名前付き引数を使用してgreeting
引数を省略しながらname
に値を提供することもできます:
ShowGreetings(name: "John");
ShowGreetings(name: "John");
ShowGreetings(name:= "John")
C# の名前付きパラメータにはいくつかの利点があります:
「視認性の向上」:名前付き引数を使用するとコードがより読みやすく、理解しやすくなります。 パラメータの名前を指定することにより、各引数が何を表しているかが明確になります。 これは、複数のパラメータを持つメソッドに特に有益です。
柔軟な引数順序
: 名前付きパラメータを使用すると、メソッド宣言でパラメータが出現する順序だけでなく、任意の順序で引数を指定できます。 これはコードをより柔軟にし、場合によっては読みやすさを向上させることができます。
オプションパラメーターの利便性:オプションパラメーターには名前付きパラメーターがよく使用されます。 メソッドにいくつかのオプションのパラメーターがある場合、これらのパラメーターを使用して、一部のオプションのパラメーターに対して値を提供し、他のパラメーターには提供しないことができます。 こうすることで、すべてのオプションパラメーターに値を提供する必要はなく、デフォルト値から変更したいものだけに値を指定できます。
これは名前付きパラメータの値の型の別の例です:
// Method Declaration
public void RegisterUser(string username, string password, string email = "", bool subscribeToNewsletter = false)
{
// Method body
}
// Method Call
RegisterUser(username: "JohnDoe", password: "password123", subscribeToNewsletter: true);
// Method Declaration
public void RegisterUser(string username, string password, string email = "", bool subscribeToNewsletter = false)
{
// Method body
}
// Method Call
RegisterUser(username: "JohnDoe", password: "password123", subscribeToNewsletter: true);
' Method Declaration
Public Sub RegisterUser(ByVal username As String, ByVal password As String, Optional ByVal email As String = "", Optional ByVal subscribeToNewsletter As Boolean = False)
' Method body
End Sub
' Method Call
RegisterUser(username:= "JohnDoe", password:= "password123", subscribeToNewsletter:= True)
上記のコードでは、email
は省略可能なパラメータであり、リストの最後のパラメータであるにもかかわらず、subscribeToNewsletter
をtrue
に設定しています。名前付きパラメータを使用することで、各引数が何を表しているかが明確になり、提供したい引数だけを指定することができます。
C#において、メソッドオーバーロード、または関数のオーバーロードは、同じ名前で異なるパラメータのセットを持つ複数のメソッドを定義できる機能です。 これにより、同じメソッド名を使用してさまざまな操作を実行できるため、コードがより直感的で使いやすくなります。
以下はオーバーロードされたメソッドのコード例です:
public void DisplayMessage(string message)
{
Console.WriteLine(message);
}
public void DisplayMessage(string message, string name)
{
Console.WriteLine(message + ", " + name);
}
public void DisplayMessage(string message)
{
Console.WriteLine(message);
}
public void DisplayMessage(string message, string name)
{
Console.WriteLine(message + ", " + name);
}
Public Sub DisplayMessage(ByVal message As String)
Console.WriteLine(message)
End Sub
Public Sub DisplayMessage(ByVal message As String, ByVal name As String)
Console.WriteLine(message & ", " & name)
End Sub
上記の例では、DisplayMessage
メソッドがオーバーロードされています。 メソッドの1つは1つのstring
パラメータを取り、もう1つは2つのstring
パラメータを取ります。
デフォルトパラメータは、オーバーロードの代替としてよく使用されます。 メソッドのパラメーターにデフォルト値を設定することで、呼び出し側がそのパラメーターを提供するかどうかを選択できるようになります。 これは、メソッドオーバーロードと同じ柔軟性を持たせつつ、より少ないコードで実現できます。
以下の例をオーバーロードする代わりに、デフォルトパラメータを使用して書き直す方法はこちらです:
public void DisplayMessage(string message, string name = "Friend")
{
Console.WriteLine(message + ", " + name);
}
public void DisplayMessage(string message, string name = "Friend")
{
Console.WriteLine(message + ", " + name);
}
Public Sub DisplayMessage(ByVal message As String, Optional ByVal name As String = "Friend")
Console.WriteLine(message & ", " & name)
End Sub
さて、DisplayMessage
は1つまたは2つの引数を使って呼び出すことができます:
DisplayMessage("Hello");
DisplayMessage("Hello", "John");
DisplayMessage("Hello");
DisplayMessage("Hello", "John");
DisplayMessage("Hello")
DisplayMessage("Hello", "John")
最初の呼び出しでは、name
パラメーターはデフォルト値の「Friend」を使用しています。 2回目の呼び出しでは、代わりに引数として渡された「John」が使用されます。
覚えておいてください、デフォルトパラメータのデフォルト値は定数式でなければならず、変数やメソッド呼び出しであってはなりません。 これは、値がコンパイル時に知られている必要があるためです。
では、Iron Softwareスイートについて詳しく見ていきましょう。含まれている製品はPDFソリューションのためのIronPDFライブラリ, C# Excel操作のためのIronXL, 高度なテキスト認識のためのIronOCR、およびバーコード生成のためのIronBarcode. これらの強力なライブラリは、C#アプリケーションの機能を拡張するために特別に設計されています。 それらは、記事で議論した概念、デフォルトパラメータ、名前付き引数指定、およびメソッドのオーバーロードに簡単に関連付けることができます。
IronPDF:これはC#ライブラリですIronPDFでHTMLをPDFに変換する. IronPDFを使用する際、デフォルトおよびオプションのパラメータを理解することは非常に重要です。 IronPDFの多くのメソッドにはオプションのパラメータが含まれており、メソッドのシグネチャを過度に複雑にすることなく幅広いカスタマイズが可能です。 詳細については、IronPDFのウェブサイトをご覧ください。HTML を PDF に変換するチュートリアル.
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
IronXL: このライブラリを使用すると、C#アプリケーションはさまざまな形式のExcelファイルを読み書きし、操作することができます。 IronXLのメソッドには、ファイルを保存する形式や、データをインポートする際にヘッダーを含めるかどうかなど、さまざまなパラメータがあります。 名前付きパラメーターとオプションパラメーターも、セル範囲、フォーマットオプションなどを指定するために広範に使用されていることがわかるでしょう。
IronOCR: 高度な光学文字認識(OCR (光学式文字認識))C#アプリケーションで画像やPDFからテキストやバーコードを読み取ることができるライブラリ。 IronOCRのメソッドには、テキストの言語、適用するエラー補正のレベルなど、OCRプロセスの側面を制御するためのオプションパラメータが含まれている場合があります。 これらのパラメーターを理解することで、OCRプロセスをより良く制御することができます。
IronBarcode: このライブラリは、.NETアプリケーションでバーコードを読み取りおよび生成するための多用途ツールです。 ここでも、デフォルトパラメータを理解することが重要です。 バーコードを生成する際に、例えば、サイズ、フォーマット、またはバーコードの値を指定するためのオプションパラメータを設定できる場合があります。
結論として、C#におけるデフォルトパラメータとオプションパラメータの活用を熟達させることで、プログラミングの効率性とコードの多様性を大幅に向上させることができます。 これらの概念はC#の基本です。
これらのライブラリについて言えば、各ライセンスの開始価格は $749 からであり、これらのライブラリはまた次のものも提供していますIron Software製品の無料トライアル. しかし、Iron Softwareはパッケージ取引を提供しています:個々のライセンス2つ分の価格で、全てのスイートを取得することができます。
10 の .NET API 製品 オフィス文書用