.NETヘルプ C# Params(開発者向けの動作方法) Jacob Mellor 更新日:2026年1月18日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る C# の params キーワードは、メソッドが可変数の引数を受け入れることを可能にする.NETの強力な機能です。 これは、可変個数のパラメーターを必要とするメソッドを呼び出す際の構文を大幅に簡素化できます。 この包括的なガイドでは、C# の params キーワード、その構文、使用例、およびベスト プラクティスについて説明します。 この記事の後半では、 Iron SoftwareのIronPDFライブラリを紹介し、params キーワードとIronPDFを使用して PDF を生成する方法について説明します。 C#のParams引数型とは? C#の領域では、メソッドは通常、決められたパラメーターセットに従います。 しかしながら、メソッドに向けられる引数の正確な数に確信が持てない状況も存在します。 "params"キーワードが登場し、引数の配列を許容するメソッドパラメーターを指定するソリューションを提供します。 この機能は、事前に正確な引数の数が不明で、同じ型の不定またはオプションのパラメーターをメソッド宣言に渡すのを助けります。 public class ParamsExample { // Method accepting a variable number of string arguments using the params keyword public void PrintMessages(params string[] messages) { foreach (var message in messages) { Console.WriteLine(message); } } } // Usage class Program { public static void Main() { var example = new ParamsExample(); example.PrintMessages("Hello", "World", "!"); } // More examples public static void AddItemsToShoppingBasket(params string[] items) { // Implementation to add items to a shopping basket } public static void AddItemsSumToShoppingBasket(params int[] sum) // Using params with int { // Implementation to add sum of items to the shopping basket } } public class ParamsExample { // Method accepting a variable number of string arguments using the params keyword public void PrintMessages(params string[] messages) { foreach (var message in messages) { Console.WriteLine(message); } } } // Usage class Program { public static void Main() { var example = new ParamsExample(); example.PrintMessages("Hello", "World", "!"); } // More examples public static void AddItemsToShoppingBasket(params string[] items) { // Implementation to add items to a shopping basket } public static void AddItemsSumToShoppingBasket(params int[] sum) // Using params with int { // Implementation to add sum of items to the shopping basket } } $vbLabelText $csharpLabel AddItemsToShoppingBasket メソッドは、文字列パラメータの可変数の引数を使用して呼び出すことができます。 params キーワードは、開発者が配列入力を明示的に作成せずにオプションのパラメータを直接渡すことができるようにすることで、メソッド呼び出しの構文を簡素化します。 class Program { public static void Main() { AddItemsToShoppingBasket("cake", "pizza", "cold drink"); AddItemsToShoppingBasket("snacks", "burger"); AddItemsToShoppingBasket(); // Valid even with zero parameters, using default value } } class Program { public static void Main() { AddItemsToShoppingBasket("cake", "pizza", "cold drink"); AddItemsToShoppingBasket("snacks", "burger"); AddItemsToShoppingBasket(); // Valid even with zero parameters, using default value } } $vbLabelText $csharpLabel 考慮事項とベストプラクティス Params をパラメータリストの最後に配置する: params パラメータをメソッドのパラメータリストの最後に配置することが推奨されます。これにより、メソッド呼び出し時の混乱を軽減し、明瞭性が向上します。 明示的な値を必要とするパラメーターは、効果的な整理のためにparamsの前に配置するべきです。 -非パラメータ パラメータを明示的に指定する: params を使用してメソッドを呼び出す場合は、params 以外のパラメータの値が明示的に指定されていることを確認します。 この方法は曖昧さを防ぎ、必要な引数の数でメソッドが正確に呼び出されることを保証します。 -曖昧さを防ぐために注意を払う:同じ型の複数のオーバーロードまたはパラメータを持つメソッドで params を使用する場合は、注意が重要です。 コンパイラは適切なメソッドの呼び出しを決定するのに苦労する可能性があり、曖昧さのエラーを引き起こす可能性があります。 -代替アプローチの検討: params は便利ですが、特定のシナリオでは代替方法を検討してください。 機能を拡張する場合や、名前付きパラメータを渡すことが目的に合致する場合、List<t> などのコレクションを利用することが望ましい場合があります。 -関連するシナリオに慎重に適用する:パラメータ数が可変であり、個別のメソッド呼び出し間で変動する可能性があるシナリオでは、params を慎重に展開します。 パラメータ数が予測不可能な状況にその使用を保留し、パラメータ数が固定されていて既知の状況には適用しないでください。 パラメータータイプ用の一次元配列 AddItemsToShoppingBasket は 1 次元配列で呼び出すことによっても使用できます。 class Program { public static void Main() { var items = new string[] { "cold drink", "snack", "roll" }; // 1D string array AddItemsToShoppingBasket(items); // Works as expected AddItemsToShoppingBasket("cold drink", "coke", "roll"); // Similar result to the above line } } class Program { public static void Main() { var items = new string[] { "cold drink", "snack", "roll" }; // 1D string array AddItemsToShoppingBasket(items); // Works as expected AddItemsToShoppingBasket("cold drink", "coke", "roll"); // Similar result to the above line } } $vbLabelText $csharpLabel 同一タイプの引数のカンマ区切り配列を渡す AddItemsToShoppingBasket は、以下のようにメソッド呼び出しで変数のリスト/配列を渡すことによって呼び出すことができます。 class Program { public static void Main() { // Example method signature AddItemsToShoppingBasket("snacks", "burger", "snacks", "burger", "cold drink"); // Comma separated values AddItemsToShoppingBasket("snacks"); } } class Program { public static void Main() { // Example method signature AddItemsToShoppingBasket("snacks", "burger", "snacks", "burger", "cold drink"); // Comma separated values AddItemsToShoppingBasket("snacks"); } } $vbLabelText $csharpLabel 定義されたタイプの配列を渡す 配列は、paramsメソッドで定義された同じタイプを含むべきです; それ以外の場合、エラーが発生します。 // Example that results in an error AddItemsToShoppingBasket("snacks", 2, "burger"); // Error due to type mismatch AddItemsToShoppingBasket(2, 3, 4); // Error since params type is string // Example that results in an error AddItemsToShoppingBasket("snacks", 2, "burger"); // Error due to type mismatch AddItemsToShoppingBasket(2, 3, 4); // Error since params type is string $vbLabelText $csharpLabel メソッド内で定義された params と型が一致しない場合、構文エラーが発生します。 常にメソッド内の最後のパラメーター メソッド シグネチャ内の params パラメータの後には追加のパラメータは許可されません。 メソッド パラメータ宣言では、1 つの params 引数のみが許可されます。 誤って定義すると、コンパイルエラーが発生します。 class Program { static void Main(string[] args) { // Example 1 public static void AddItemsToShoppingBasket(double total, params string[] items) { // Works fine as `params` is the last parameter } // Example 2, error scenario public static void AddItemsToShoppingBasket(params string[] items, decimal total, int total) { // Error: `params` keyword must be the last parameter } } } class Program { static void Main(string[] args) { // Example 1 public static void AddItemsToShoppingBasket(double total, params string[] items) { // Works fine as `params` is the last parameter } // Example 2, error scenario public static void AddItemsToShoppingBasket(params string[] items, decimal total, int total) { // Error: `params` keyword must be the last parameter } } } $vbLabelText $csharpLabel キーワードは1つだけ メソッド シグネチャ内で許可される params パラメータは 1 つだけです。 メソッド シグネチャ内に複数の params キーワードが見つかった場合、コンパイラはエラーをスローします。 class Program { static void Main(string[] args) { public static void AddItemsToShoppingBasket(params string[] items, params string[] quantity) { // Compiler Error: Only one params keyword is allowed in the method signature } } } class Program { static void Main(string[] args) { public static void AddItemsToShoppingBasket(params string[] items, params string[] quantity) { // Compiler Error: Only one params keyword is allowed in the method signature } } } $vbLabelText $csharpLabel 引数を渡さないことができる メソッドに params キーワードを含むパラメータがある場合、引数なしで呼び出すことができ、コンパイラはエラーをスローしません。 AddItemsToShoppingBasket(); // Works as expected AddItemsToShoppingBasket(); // Works as expected $vbLabelText $csharpLabel params 引数を持つパラメータはオプションのパラメータとみなされ、パラメータを渡さずに呼び出すことができます。 Code Example 新しいコンソールアプリケーションを作成します。 Visual Studioを開き、新しいプロジェクトを作成してコンソールアプリケーションタイプを選択します。 次に、以下のコードを追加します。 using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> cart = new List<string>(); void AddItemsToShoppingBasket(params string[] samples) { for (int i = 0; i < samples.Length; i++) { cart.Add(samples[i]); } } // Caller code Console.WriteLine("Enter the cart items as comma separated values"); var itemsString = Console.ReadLine(); if (itemsString != null) { var items = itemsString.Split(",").ToArray(); AddItemsToShoppingBasket(items); } AddItemsToShoppingBasket("Sample1", "Sample2"); Console.WriteLine("-------------------------------------------------------"); Console.WriteLine("Display Cart"); foreach (var item in cart) { Console.WriteLine(item); } } } using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> cart = new List<string>(); void AddItemsToShoppingBasket(params string[] samples) { for (int i = 0; i < samples.Length; i++) { cart.Add(samples[i]); } } // Caller code Console.WriteLine("Enter the cart items as comma separated values"); var itemsString = Console.ReadLine(); if (itemsString != null) { var items = itemsString.Split(",").ToArray(); AddItemsToShoppingBasket(items); } AddItemsToShoppingBasket("Sample1", "Sample2"); Console.WriteLine("-------------------------------------------------------"); Console.WriteLine("Display Cart"); foreach (var item in cart) { Console.WriteLine(item); } } } $vbLabelText $csharpLabel 出力 IronPDFの紹介 Iron SoftwareのIronPDF C# PDFライブラリは、C#でPDFドキュメントを読み書きおよび管理できる多用途なライブラリです。 モバイル、ウェブサイト、デスクトップ、Dockerなど、あらゆる種類のモダンなアプリケーション開発をサポートしています。また、Windows、Linux、Unixなどの異なるOSもサポートしています。その方法はネイティブOSメソッドに依存しません。 IronPDF は HTML から PDF への変換に秀でており、元のレイアウトとスタイルを正確に保存します。 これは、レポート、請求書、ドキュメントなどの Web ベースのコンテンツから PDF を作成するのに最適です。 HTML ファイル、URL、または生の HTML 文字列のサポートにより、IronPDF は高品質な 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"); } } $vbLabelText $csharpLabel インストール IronPDFライブラリは、以下のコマンドを使用してNuGetパッケージマネージャーコンソールを使用するか、Visual Studioパッケージマネージャーを使用してインストールできます。 Install-Package IronPdf IronPDFを使用したPDFの生成 次に、上記の例からPDFドキュメントを生成するためにIronPDFを使用します。 using System; using System.Collections.Generic; using System.Linq; using IronPdf; class Program { public static void Main() { List<string> cart = new List<string>(); void AddItemsToShoppingBasket(params string[] items) { for (int i = 0; i < items.Length; i++) { cart.Add(items[i]); } } // Take input from console Console.WriteLine("Enter the cart items as comma separated values"); var itemsString = Console.ReadLine(); // Read the items if (itemsString != null) { var items = itemsString.Split(",").ToArray(); AddItemsToShoppingBasket(items); } // Add to cart AddItemsToShoppingBasket("Sample1", "Sample2"); Console.WriteLine("------------------------------------------------"); Console.WriteLine("Display Cart"); Console.WriteLine("------------------------------------------------"); string name = "Sam"; var count = cart.Count; string content = $@"<!DOCTYPE html> <html> <body> <h1>Hello, {name}!</h1> <p>You have {count} items in the cart.</p> " + string.Join("\n", cart.Select(x => $"<p>{x}</p>")) + @" </body> </html>"; // Create a new PDF document var pdfDoc = new ChromePdfRenderer(); pdfDoc.RenderHtmlAsPdf(content).SaveAs("cart.pdf"); } } using System; using System.Collections.Generic; using System.Linq; using IronPdf; class Program { public static void Main() { List<string> cart = new List<string>(); void AddItemsToShoppingBasket(params string[] items) { for (int i = 0; i < items.Length; i++) { cart.Add(items[i]); } } // Take input from console Console.WriteLine("Enter the cart items as comma separated values"); var itemsString = Console.ReadLine(); // Read the items if (itemsString != null) { var items = itemsString.Split(",").ToArray(); AddItemsToShoppingBasket(items); } // Add to cart AddItemsToShoppingBasket("Sample1", "Sample2"); Console.WriteLine("------------------------------------------------"); Console.WriteLine("Display Cart"); Console.WriteLine("------------------------------------------------"); string name = "Sam"; var count = cart.Count; string content = $@"<!DOCTYPE html> <html> <body> <h1>Hello, {name}!</h1> <p>You have {count} items in the cart.</p> " + string.Join("\n", cart.Select(x => $"<p>{x}</p>")) + @" </body> </html>"; // Create a new PDF document var pdfDoc = new ChromePdfRenderer(); pdfDoc.RenderHtmlAsPdf(content).SaveAs("cart.pdf"); } } $vbLabelText $csharpLabel 上記のコードで、カートアイテムのHTMLドキュメントを生成し、それをIronPDFを使用してPDFドキュメントとして保存しています。 出力 ライセンス (無料トライアル利用可能) IronPDFは、製品版で機能するためにライセンスキーが必要です。 試用キーはこちらのライセンスページから取得できます。 キーをappsettings.jsonに配置してください。 "IronPdf.LicenseKey": "your license key" 試用ライセンスをメールで受け取るためにメールアドレスを提供してください。 結論 C# の params キーワードは、可変数のパラメータを必要とするメソッドを柔軟に処理する方法を提供します。 メソッドコールを簡素化し、コードの読みやすさと保守性を向上させます。 IronPDFと共に、クリーンなコードを書くための優れたスキルの組み合わせは、あらゆるプログラマーにとって優れた組み合わせです。 よくある質問 C# における 'params' キーワードとは何ですか? C# の 'params' キーワードは、メソッドが任意の数の引数を受け入れることを可能にし、多様なパラメーター数でメソッドを呼び出すための構文を簡素化します。 メソッドシグネチャにおいて 'params' キーワードはどのように機能しますか? メソッドシグネチャにおいて、'params' キーワードはパラメータ型とパラメータ名の前に使用され、その型の任意の数の引数を配列として受け入れることを可能にします。 ‘params’ 付きのメソッドは引数なしで受け入れられますか? はい、'params' パラメータを持つメソッドは引数なしで呼び出すことができ、'params' パラメータはオプションとして扱われます。 C# における 'params' の使用に関するベストプラクティスは何ですか? ベストプラクティスには、'params' パラメータをパラメータリストの最後に配置し、非 'params' パラメータを明示的に指定し、パラメータ数が変わる場合のみ慎重に使用することが含まれます。 C# メソッドには複数の 'params' パラメーターを持つことができますか? いいえ、C# メソッドには1つの 'params' パラメータしか持てません。これはメソッドシグネチャの最後のパラメータでなければなりません。 C# の 'params' を使用することで、メソッドの柔軟性をどのように高めることができますか? C# メソッドで 'params' を使用することで、動的なパラメータ数を処理できるより柔軟なコードを書くことが可能になり、保守性と拡張性が向上します。 'params' キーワードをドキュメント生成用 C# ライブラリとどのように組み合わせることができますか? 'params' キーワードは C# ライブラリと組み合わせて、IronPDF を使用して様々な内容でPDFを生成するなど、ドキュメント生成タスクに柔軟な数のパラメータを渡すのに使えます。 C# ライブラリを使用して HTML を PDF に変換するにはどうすれば良いですか? IronPDF のような C# ライブラリを使用して、HTML ストリングの RenderHtmlAsPdf メソッドや HTML ファイルの RenderHtmlFileAsPdf メソッドなどで HTML を PDF に変換できます。 C# における 'params' キーワードの一般的な使用例は何ですか? 'params' キーワードの一般的な使用例には、ロギングメッセージ、数学的操作、ストリング出力の構築など、異なる数の入力を処理する必要のあるメソッドが含まれます。 プロジェクトに PDF 操作のための C# ライブラリをどのように統合しますか? IronPDF のような PDF 操作のための C# ライブラリを統合するには、dotnet add package [LibraryName] コマンドを使って NuGet からインストールし、その API を使用して PDF タスクを実行します。 Jacob Mellor 今すぐエンジニアリングチームとチャット 最高技術責任者(CTO) ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。彼の主要なIronPDFとIron Suite .NETライブラリは、世界中で3000万以上のNuGetインストールを達成し、彼の基礎となるコードは世界中で使用されている開発者ツールに力を与え続けています。25年の商業経験と41年のコーディングの専門知識を持つJacobは、次世代の技術リーダーを指導しながら、エンタープライズグレードのC#、Java、Python PDFテクノロジーにおけるイノベーションの推進に注力しています。 関連する記事 更新日 2026年2月20日 CLIの簡素化と.NETの橋渡し:Curl DotNetとIronPDFを使う Jacob Mellorは、.NETエコシステムにcURLの親しみやすさをもたらすために作成されたライブラリ、CurlDotNetでこのギャップを埋めました。 詳しく読む 更新日 2025年12月20日 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む 更新日 2025年12月20日 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む C# PostgreSQL(開発者向けの動作方法)C# Enums(開発者向けの動作...
更新日 2026年2月20日 CLIの簡素化と.NETの橋渡し:Curl DotNetとIronPDFを使う Jacob Mellorは、.NETエコシステムにcURLの親しみやすさをもたらすために作成されたライブラリ、CurlDotNetでこのギャップを埋めました。 詳しく読む
更新日 2025年12月20日 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む
更新日 2025年12月20日 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む