広告スペース(バナー)
🔷Visual Basic(.NET) レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 51 / 68

ジェネリクスで汎用的な関数を書こう

このレッスンでは、VB.NETのジェネリクスを使って汎用的な関数を書く方法を学び、複数の型に対応できる柔軟な関数を作れるようになることを目標にします。「VB.NET ジェネリクス 使い方」で調べている方向けです。

Function 名前(Of T As 制約)(...)という書き方で、型を後から指定できるジェネリクスな関数を定義できます。同じロジックの関数を型ごとに何度も書く代わりに、1つの関数で複数の型に対応できます。

サンプルコードでは、Function Larger(Of T As IComparable)(a As T, b As T) As Tという定義により、数値のLarger(3, 7)と文字列のLarger("apple", "banana")のどちらも同じ関数で比較できています。As IComparableという制約が、比較可能な型に限定する役割を果たしています。

初心者がよくつまずくのが、型パラメータに制約を付ける理由です。制約なしのTだけではCompareTo()のようなメソッドが使えるとは限らないため、As IComparableのように「比較できる型に限る」という制約が必要になります。

実際の開発現場では、List(Of T)のようなコレクションクラスや、様々な型で使い回したい共通処理を書く場面でジェネリクスが広く活用されています。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではVisual Basic(.NET)を直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
型を問わず使い回せる、便利な比較関数が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)