IronBarcode ハウツー Checksum & Format Validation バーコードのチェックサムを検証し、C#でフォーマット対応の読み取りを使用する方法 Darrius Serrant 更新日:2026年3月4日 IronBarcode をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る This article was translated from English: Does it need improvement? Translated View the article in English バーコードのチェックサムは、置換エラーの検出に役立ちます。 例えば、EAN-13ラベルの数字が1桁入れ替わっているだけで、荷物が間違った倉庫に送られてしまう可能性がある。 フォーマット認識型読み取りは、デコーダーを想定されるシンボル体系に制限することで、追加の検証レイヤーを提供する。 この手法は、不要なフォーマット検出器をスキップすることで、バックグラウンドノイズによる誤検出を減らし、スキャン時間を短縮します。 IronBarcodeは、デコード時にチェックサム検証を自動的に実行します。 各シンボル体系のチェックデジットアルゴリズムはデフォルトで実行され、認証に失敗したバーコードは結果が返される前に破棄されます。 BarcodeReaderOptions.ExpectBarcodeTypes プロパティは読み取りを特定の形式に制限し、RemoveFalsePositive は曖昧な読み取りに対する二次スキャンを追加します。 このガイドでは、バーコードチェックサムを検証し、読み取りを想定される形式に制限し、BarcodeReaderOptions を使用して両方の技術を組み合わせて階層化された品質ゲートを作成する方法について説明します。 クイックスタート:チェックサムとフォーマット制約でバーコードを検証する BarcodeReaderOptions を ExpectBarcodeTypes および RemoveFalsePositive と組み合わせて設定し、自動チェックサム検証を使用して、読み取りを想定されるシンボル体系に制限します。 :path=/static-assets/barcode/content-code-examples/how-to/checksum-and-format-validation/quickstart.cs using IronBarCode; // Format-constrained read with false-positive removal. // Limit the decoder to EAN-13 and Code128; checksums are // validated automatically and failures are silently discarded. var options = new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeEncoding.EAN13 | BarcodeEncoding.Code128, RemoveFalsePositive = true, Speed = ReadingSpeed.Balanced }; BarcodeResults results = BarcodeReader.Read("label.png", options); Imports IronBarCode ' Format-constrained read with false-positive removal. ' Limit the decoder to EAN-13 and Code128; checksums are ' validated automatically and failures are silently discarded. Dim options As New BarcodeReaderOptions With { .ExpectBarcodeTypes = BarcodeEncoding.EAN13 Or BarcodeEncoding.Code128, .RemoveFalsePositive = True, .Speed = ReadingSpeed.Balanced } Dim results As BarcodeResults = BarcodeReader.Read("label.png", options) $vbLabelText $csharpLabel 最小限のワークフロー(5ステップ) NuGetからIronBarcodeライブラリをダウンロード BarcodeReaderOptionsインスタンスを作成する ExpectBarcodeTypesをパイプラインに存在するシンボロジーに設定する RemoveFalsePositiveを有効にして追加検証を行う BarcodeReader.Readを呼び出してデコードします。チェックサムはデコード中に自動的に検証されます。 バーコードのチェックサムを検証する方法は? IronBarcodeは、各シンボル体系の仕様に従って、デコード中にチェックサムを検証します。 例えば、EAN-13バーコードを読み取る場合、Mod10チェックデジットは最初の12桁から計算され、13桁目と比較されます。 数字が一致しない場合、バーコードは黙って拒否され、BarcodeResults コレクションには表示されません。 この方法は、UPC-A、UPC-E、EAN-8、Code128、ITFなど、チェックデジットが必須となるすべてのフォーマットに適用されます。 この暗黙のモデルは、明示的な切り替えを公開するライブラリと異なります。 以下の表は、2つのアプローチを比較しています: チェックサム検証モデルの比較: IronBarcodeとAspose.BarCode アスペクトIronBarcodeAspose.BarCode 検証トリガー自動; デコード時に毎回実行されます明示的: チェックサムValidation.Onオン / Off / Default 開発者の行動が求められますなし。無効なバーコードは結果から除外されます。読み取り前にBarcodeSettings.チェックサムValidationを設定してください。 チェックサム無効化公開されていません。必須フォーマットでは常にチェックサムが適用されます。はい。チェックサムValidation.Off チェックサムValidation.Off検証をスキップします。 オプションのチェックサムフォーマット(Code39)Confidence + RemoveFalsePositiveを使用して低品質のリードをフィルタリングします。Enableチェックサム.はいで明示的に有効にします 失敗時の動作バーコードは結果から静かに省略されますバーコードには、手動検査用のチェックサム値が別に表示される場合があります。 Code39 のようにオプションのチェックサムを持つシンボル体系の場合、ライブラリはチェックサムの切り替えの代わりに信頼度スコアリングと RemoveFalsePositive を使用します。 入力 Code128倉庫ラックラベル(成功経路)とバーコードのない空白画像(失敗経路)。 warehouse-rack.png(成功パス) blank-no-barcode.png(失敗例 - バーコードが存在しない) :path=/static-assets/barcode/content-code-examples/how-to/checksum-and-format-validation/checksum-confidence.cs using IronBarCode; // Constrain reads to 1D formats and enable secondary verification. // ConfidenceThreshold rejects decodes where the ML detector falls below 85%, // acting as a quality gate for optional-checksum symbologies like Code39. var options = new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional, RemoveFalsePositive = true, ConfidenceThreshold = 0.85, Speed = ReadingSpeed.Detailed }; BarcodeResults results = BarcodeReader.Read("warehouse-rack.png", options); foreach (BarcodeResult result in results) { // Each result has passed checksum validation (mandatory formats) // and the 85% confidence threshold, so no additional filtering is needed. Console.WriteLine($"[{result.BarcodeType}] {result.Value} page={result.PageNumber}"); } if (results.Count == 0) { Console.Error.WriteLine("No valid barcodes found. Possible causes:"); Console.Error.WriteLine(" - Check digit mismatch (barcode silently rejected)"); Console.Error.WriteLine(" - Confidence below 85% threshold"); Console.Error.WriteLine(" - Format not in ExpectBarcodeTypes"); } Imports IronBarCode ' Constrain reads to 1D formats and enable secondary verification. ' ConfidenceThreshold rejects decodes where the ML detector falls below 85%, ' acting as a quality gate for optional-checksum symbologies like Code39. Dim options As New BarcodeReaderOptions With { .ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional, .RemoveFalsePositive = True, .ConfidenceThreshold = 0.85, .Speed = ReadingSpeed.Detailed } Dim results As BarcodeResults = BarcodeReader.Read("warehouse-rack.png", options) For Each result As BarcodeResult In results ' Each result has passed checksum validation (mandatory formats) ' and the 85% confidence threshold, so no additional filtering is needed. Console.WriteLine($"[{result.BarcodeType}] {result.Value} page={result.PageNumber}") Next If results.Count = 0 Then Console.Error.WriteLine("No valid barcodes found. Possible causes:") Console.Error.WriteLine(" - Check digit mismatch (barcode silently rejected)") Console.Error.WriteLine(" - Confidence below 85% threshold") Console.Error.WriteLine(" - Format not in ExpectBarcodeTypes") End If $vbLabelText $csharpLabel 出力 成功への道 倉庫ラックのバーコードは、ページ0でBarcodeResultsに表示されます。 障害発生経路 ConfidenceThreshold をデフォルト値の 0.7 より高くすると、Code39 などのオプションのチェックサムシンボルに対してこのゲートがさらに厳しくなります。 チェックサム検証が完了したら、次のステップは、パイプラインが想定するバーコード形式にリーダーを制限することです。 フォーマット対応のバーコード読み取りを使用する方法は? BarcodeEncoding 列挙型はフラグ型であり、ビットごとの OR 演算子を使用して複数のフォーマットを組み合わせることができます。 ExpectBarcodeTypes を設定すると、リーダーがこれらの形式に限定され、他の形式の検出はスキップされます。 共通のBarcodeEncoding値 値カテゴリ翻訳内容チェックサム BarcodeEncoding.Allメタサポートされているすべてのフォーマット(デフォルトの動作)フォーマット別 BarcodeEncoding.AllOneDimensionalメタ積層を含むすべての線形(1D)フォーマットフォーマット別 BarcodeEncoding.AllTwoDimensionalメタすべてのマトリックス/グリッド(2D)フォーマットフォーマット別 BarcodeEncoding.Code1281D高密度英数字(物流、配送)必須(重み付けMod103) BarcodeEncoding.EAN131D小売製品識別番号(13桁)必須(Mod10) BarcodeEncoding.QRCode2D高容量マトリックス(URL、構造化データ)リード・ソロモンECC BarcodeEncoding.Code391D英数字(防衛、自動車)オプション(Mod43) BarcodeEncoding.UPCA1D北米小売業、12桁必須(Mod10) BarcodeEncoding.DataMatrix2Dコンパクトマトリックス(電子機器、製薬)リード・ソロモンECC BarcodeEncoding.PDF4172D積み重ね(IDカード、交通機関)リード・ソロモンECC 速度以外にも、フォーマットセットを制限することは検証ゲートとして機能します。リストにないシンボル体系のバーコードは、画像内に物理的に存在していても、結果から除外されます。 入力 Code128の配送ラベル(成功経路)と、Code128のみという制約に一致しないQRコード(失敗経路)。 shipping-label.png(成功パス - コード128が制約に一致) qr-format-mismatch.png(失敗例 — Code128専用フィルターによりQRコードが拒否されました) :path=/static-assets/barcode/content-code-examples/how-to/checksum-and-format-validation/format-constrained.cs using IronBarCode; // Constrained read: only Code128 barcodes are returned. // Faster because the reader skips all other format detectors. var constrainedOptions = new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeEncoding.Code128, Speed = ReadingSpeed.Faster, ExpectMultipleBarcodes = false }; // Broad read: all supported formats are scanned. // Useful for verification or when the image format is unknown. var broadOptions = new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeEncoding.All, Speed = ReadingSpeed.Detailed, ExpectMultipleBarcodes = true }; string imagePath = "shipping-label.png"; BarcodeResults constrained = BarcodeReader.Read(imagePath, constrainedOptions); Console.WriteLine($"Constrained: {constrained.Count} Code128 barcode(s) found"); BarcodeResults broad = BarcodeReader.Read(imagePath, broadOptions); Console.WriteLine($"Broad: {broad.Count} barcode(s) found across all formats"); foreach (BarcodeResult result in broad) { Console.WriteLine($" [{result.BarcodeType}] {result.Value}"); } Imports IronBarCode ' Constrained read: only Code128 barcodes are returned. ' Faster because the reader skips all other format detectors. Dim constrainedOptions As New BarcodeReaderOptions With { .ExpectBarcodeTypes = BarcodeEncoding.Code128, .Speed = ReadingSpeed.Faster, .ExpectMultipleBarcodes = False } ' Broad read: all supported formats are scanned. ' Useful for verification or when the image format is unknown. Dim broadOptions As New BarcodeReaderOptions With { .ExpectBarcodeTypes = BarcodeEncoding.All, .Speed = ReadingSpeed.Detailed, .ExpectMultipleBarcodes = True } Dim imagePath As String = "shipping-label.png" Dim constrained As BarcodeResults = BarcodeReader.Read(imagePath, constrainedOptions) Console.WriteLine($"Constrained: {constrained.Count} Code128 barcode(s) found") Dim broad As BarcodeResults = BarcodeReader.Read(imagePath, broadOptions) Console.WriteLine($"Broad: {broad.Count} barcode(s) found across all formats") For Each result As BarcodeResult In broad Console.WriteLine($" [{result.BarcodeType}] {result.Value}") Next $vbLabelText $csharpLabel 出力 成功への道 配送ラベルの値は SHIP-2024-00438 です。 制約付き読み取りでは、Code128がフィルタが想定する値であるため、すぐに検出されます。また、広範囲読み取りでも、すべてのフォーマットで同じ結果が得られます。 障害発生経路 制約付き読み取りの結果が空の場合、それはエラーではなく検証シグナルです。 不一致点を記録して、レビューのために保管してください。 バーコードの種類が混在するパイプライン(例:EAN-13製品コードとCode128追跡番号の両方が記載された梱包明細書)の場合は、想定されるフォーマットを組み合わせます。 :path=/static-assets/barcode/content-code-examples/how-to/checksum-and-format-validation/multi-format-combine.cs using IronBarCode; // Combine multiple format flags with | to scan for more than one symbology // in a single pass. Each BarcodeResult.BarcodeType identifies which format // was decoded, enabling downstream routing logic per symbology. var options = new BarcodeReaderOptions { ExpectBarcodeTypes = BarcodeEncoding.EAN13 | BarcodeEncoding.Code128, ExpectMultipleBarcodes = true }; Imports IronBarCode ' Combine multiple format flags with Or to scan for more than one symbology ' in a single pass. Each BarcodeResult.BarcodeType identifies which format ' was decoded, enabling downstream routing logic per symbology. Dim options As New BarcodeReaderOptions With { .ExpectBarcodeTypes = BarcodeEncoding.EAN13 Or BarcodeEncoding.Code128, .ExpectMultipleBarcodes = True } $vbLabelText $csharpLabel 返される各 BarcodeResult.BarcodeType は、どのフォーマットがデコードされたかを識別し、下流ルーティングを可能にします。 どのシンボロジーがチェックサム検証をサポートしているか? すべてのバーコードフォーマットが同じ方法でチェックサムを使用しているわけではありません。 次の表は、一般的なシンボル体系とエラー検出特性を対応付けたもので、各フォーマットに対して ConfidenceThreshold および RemoveFalsePositive をどの程度積極的に設定すべきかを示しています。 シンボロジー別のチェックサム特性 シンボロジーチェックサムタイプ必須?推奨事項 EAN-13 / EAN-8Mod10はいデフォルト設定で十分です。チェックサムは常に適用されます。 UPC-A / UPC-EMod10はいデフォルト設定で十分です。書き込み時にチェックデジットが自動修正されます。 Code128重み付けMod103はいデフォルト設定で十分。仕様上必須。 Code39Mod43オプションConfidenceThresholdを0.8以上に引き上げ、RemoveFalsePositiveを有効にする コーダバーMod16オプションCode39と同様。品質ゲートとして信頼度を使用する。 ITFMod10オプションインタリーブフォーマットにRemoveFalsePositiveを有効にする QRコード / データマトリックスリード・ソロモンECCいつも構造エラーの修正。追加の設定は不要です。 PDF417リード・ソロモンECCいつもQR/DataMatrixと同様。エラー訂正機能は内蔵されている。 QRコード、DataMatrix、PDF417などの2次元シンボル体系では、エラー訂正はエンコード構造に組み込まれています。 これらのフォーマットは、単純なチェックデジットに頼ることなく、部分的な損傷から復旧できる。 ConfidenceThreshold は引き続き ML 検出フェーズ中に適用されますが、デコードステップではシンボル体系に組み込まれた冗長性が活用されます。 両方の手法を理解したところで、それらを組み合わせて、本番環境ですぐに使える単一の検証パターンを作成します。 チェックサムとフォーマット制約をどのように組み合わせるか? 本番環境に対応したパターンセットは、BarcodeReaderOptionsオブジェクトにまとめます。 これらが組み合わさって階層化されたゲートを形成する。フォーマット制約によって検索空間が絞り込まれ、チェックサム検証によってデータの整合性が確保され、信頼度閾値によって境界値のデコードがフィルタリングされ、誤検出の除去によって二次的な検証パスが追加される。 入力 成功パスとして使用される、pos-scans/ ディレクトリからの 3 つの POS スキャン バーコード: 2 つの EAN-13 と 1 つの UPC-A。 Code128倉庫ラックラベルが障害パスとして使用され、EAN-13/UPC-A制約がそれを拒否し、REJECT行をログに記録します。 pos-scan-1.png(成功) pos-scan-2.png(成功) pos-scan-3.png(成功) warehouse-rack.png(エラー - コード128で拒否されました) :path=/static-assets/barcode/content-code-examples/how-to/checksum-and-format-validation/combined-validation.cs using IronBarCode; // Layered validation for retail POS: EAN-13, UPC-A, and UPC-E only. // Each property adds a distinct filter to the read pipeline. var options = new BarcodeReaderOptions { // Layer 1: format constraint, accept only retail symbologies ExpectBarcodeTypes = BarcodeEncoding.EAN13 | BarcodeEncoding.UPCA | BarcodeEncoding.UPCE, // Layer 2: confidence threshold, reject decodes below 80% ConfidenceThreshold = 0.8, // Layer 3: false-positive removal, runs a secondary verification pass RemoveFalsePositive = true, Speed = ReadingSpeed.Balanced, ExpectMultipleBarcodes = false, // Require 3 agreeing scan lines to reduce phantom reads from noisy images MinScanLines = 3 }; string[] scanFiles = Directory.GetFiles("pos-scans/", "*.png"); foreach (string file in scanFiles) { BarcodeResults results = BarcodeReader.Read(file, options); if (results.Count == 0) { // No barcode passed all validation layers Console.Error.WriteLine($"REJECT {Path.GetFileName(file)}: " + "no valid EAN-13/UPC barcode (checksum, confidence, or format mismatch)"); continue; } BarcodeResult primary = results.First(); // Post-read assertion: verify the decoded format matches expectations. // ExpectBarcodeTypes already constrains the reader; this check documents // intent and surfaces unexpected results during future changes. if (primary.BarcodeType != BarcodeEncoding.EAN13 && primary.BarcodeType != BarcodeEncoding.UPCA && primary.BarcodeType != BarcodeEncoding.UPCE) { Console.Error.WriteLine($"UNEXPECTED FORMAT {Path.GetFileName(file)}: " + $"got {primary.BarcodeType}, expected EAN-13/UPC"); continue; } Console.WriteLine($"OK {Path.GetFileName(file)}: [{primary.BarcodeType}] {primary.Value}"); } Imports IronBarCode Imports System.IO ' Layered validation for retail POS: EAN-13, UPC-A, and UPC-E only. ' Each property adds a distinct filter to the read pipeline. Dim options As New BarcodeReaderOptions With { ' Layer 1: format constraint, accept only retail symbologies .ExpectBarcodeTypes = BarcodeEncoding.EAN13 Or BarcodeEncoding.UPCA Or BarcodeEncoding.UPCE, ' Layer 2: confidence threshold, reject decodes below 80% .ConfidenceThreshold = 0.8, ' Layer 3: false-positive removal, runs a secondary verification pass .RemoveFalsePositive = True, .Speed = ReadingSpeed.Balanced, .ExpectMultipleBarcodes = False, ' Require 3 agreeing scan lines to reduce phantom reads from noisy images .MinScanLines = 3 } Dim scanFiles As String() = Directory.GetFiles("pos-scans/", "*.png") For Each file As String In scanFiles Dim results As BarcodeResults = BarcodeReader.Read(file, options) If results.Count = 0 Then ' No barcode passed all validation layers Console.Error.WriteLine($"REJECT {Path.GetFileName(file)}: " & "no valid EAN-13/UPC barcode (checksum, confidence, or format mismatch)") Continue For End If Dim primary As BarcodeResult = results.First() ' Post-read assertion: verify the decoded format matches expectations. ' ExpectBarcodeTypes already constrains the reader; this check documents ' intent and surfaces unexpected results during future changes. If primary.BarcodeType <> BarcodeEncoding.EAN13 AndAlso primary.BarcodeType <> BarcodeEncoding.UPCA AndAlso primary.BarcodeType <> BarcodeEncoding.UPCE Then Console.Error.WriteLine($"UNEXPECTED FORMAT {Path.GetFileName(file)}: " & $"got {primary.BarcodeType}, expected EAN-13/UPC") Continue For End If Console.WriteLine($"OK {Path.GetFileName(file)}: [{primary.BarcodeType}] {primary.Value}") Next $vbLabelText $csharpLabel 出力 成功への道 3枚のPOSスキャン画像はすべて無事に通過しました。 リーダーは、012345678905 の値を返します。 それぞれが"EAN13"と一致した | UPCA | UPCE`フィルターは有効なMod10チェックサムを持ち、信頼度は0.8以上でした。 障害発生経路 MinScanLines を 3 に設定すると、1D バーコードが有効であるために必要な、一致するスキャンラインの最小数が増加します。 デフォルト値は2です。この値を上げると、ノイズの多いスキャンラインからの誤読み取りのリスクは低下しますが、細いバーコードや部分的に損傷したバーコードが読み取れなくなる可能性があります。 印刷ラベルがきれいな小売店のPOS環境では、値3は処理能力に影響を与えることなく検証を強化する保守的な選択肢です。 ポストリードのアサーション BarcodeType は多層防御です。ExpectBarcodeTypes は既にフィルタリングしていますが、明示的なチェックにより意図が文書化され、実行時コストなしで構成のずれを検出できます。速度調整には、ReadingSpeed.Faster はきれいな機械印刷ラベルに適しています。 Detailed および ExtremeDetail は、スキャン時間が長くなるという代償を伴いますが、破損または照明が不十分なバーコードを復元します。 次のステップは何ですか? この記事では、IronBarcode の暗黙的なチェックサム検証モデル、フォーマット制約付き読み取り用の BarcodeEncoding フラグ列挙型、および MinScanLines を階層化された品質ゲートとして使用する複合検証パターンについて説明しました。 さらなる学習のために、これらのリソースを探検してください: IronBarcodeチュートリアル — バーコードの読み取り 全体の読み取り手順。 RemoveFalsePositive メカニズムの誤検出防止の詳細。 信頼性閾値の例 MLベースの検出調整. BarcodeResult プロパティ参照の出力データ形式。 画像補正の方法デコードの精度を向上させるフィルター。 BarcodeReaderOptions APIリファレンス完全な構成ドキュメント。 BarcodeEncoding APIリファレンスサポートされているシンボロジーの全リスト。 無料トライアルライセンスを取得して ライブ環境でのすべての機能をテストするか、ライセンスオプションを見る パイプラインがプロダクションの準備ができた際に。 よくある質問 What is barcode checksum validation? Barcode checksum validation is a process that ensures the accuracy of barcode data by verifying the calculated checksum against the value encoded within the barcode. This helps in detecting errors in the scanning process. How does IronBarcode handle checksum validation? IronBarcode implicitly handles checksum validation by calculating the checksum for the barcode data and verifying it against the encoded checksum, ensuring data integrity during the scanning process. What are BarcodeEncoding filters? BarcodeEncoding filters in IronBarcode allow you to specify which barcode formats to read or ignore during scanning, enabling more accurate and efficient barcode processing by focusing on specific barcode types. Can IronBarcode perform combined validation? Yes, IronBarcode can perform combined validation by checking both the checksum and the format of barcodes during the scanning process, ensuring that only valid and correctly formatted barcodes are processed. Is it possible to constrain barcode reads by format in C# with IronBarcode? Yes, IronBarcode allows you to constrain barcode reads by specifying the formats you want to include or exclude, ensuring that your application processes only relevant barcode types. Why is format-aware reading important in barcode processing? Format-aware reading is important because it allows your application to process only specific types of barcodes, improving speed and accuracy by ignoring irrelevant or unsupported barcode formats. How do I implement format-aware reading in IronBarcode? To implement format-aware reading in IronBarcode, use BarcodeEncoding filters to specify the barcode formats you wish to read. This can be done through the library's API, which allows for precise control over barcode scanning requirements. What are the benefits of using IronBarcode for barcode validation? IronBarcode offers several benefits for barcode validation, including robust checksum verification, format-aware reading, and the ability to handle a wide range of barcode standards, ensuring high accuracy and flexibility in barcode processing. Darrius Serrant 今すぐエンジニアリングチームとチャット フルスタックソフトウェアエンジニア(WebOps) Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。Iron Softwareでは、新しいものを創造することと、複雑なコンセプトをより理解しやすくすることを楽しんでいます。Resident Developerの一人として、次世代に専門知識を共有するために、学生を教えることにも志願しました。Darriusにとって、その仕事は価値があり、実際の影響があるため、満足感があります。 準備はできましたか? Nuget ダウンロード 2,143,620 | バージョン: 2026.4 リリース 無料トライアル NuGet 無料ダウンロード 総ダウンロード数: 2,143,620 ライセンスを見る まだスクロールしていますか? すぐに証拠が欲しいですか? PM > Install-Package BarCode サンプルを実行する 文字列が BarCode になるのを見る。 NuGet 無料ダウンロード 総ダウンロード数: 2,143,620 ライセンスを見る