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

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

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

ジェネリクス(<T>)を使うと、型を1つに決めずに「どんな型でも使える」メソッドを書けます。数値にも文字列にも同じロジックを使い回したいときに便利です。

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

初心者がよくつまずくのが、型制約を付ける理由です。where句で制約を付けることで、比較可能な型だけを受け付けるといった細かい指定ができますが、制約なしのTだけでは比較演算子が使えるとは限りません。

実際の開発現場では、ジェネリックコレクションのList<T>Dictionary<TKey,TValue>も、この仕組みを応用して作られています。

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

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

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