unity勉強日記プログラミング素人、ブルーノの自主勉強ノートです。他のプログラミングを勉強したい方の助けになれば幸いです。爽健美茶と玄米茶が定期的に飲みたくなるブルーノです。私は飲み物を飲まないんですがたくさん飲んだ方が健康には良いらしいですね。今回はジェネリッククラスの型パラメータの制約の仕方についてまとめていきます。私は制約と聞くとクラピカを連想しますね(どうでもいい)型パラメータの制約とは?プログラムは他人にも公開したり、別の機会に一部だけ使ったりすることができるのが利点です。ジェネリッククラスでもこれを行うことはできるのですが、この型パラメータ<T>にユーザーが指定したものを勝手に指定されると不具合が起こることもあります。少なくとも自分が安全を確認したものだけを使えるようにできれば一番良いですよね。そこでこの型パラメータに制約を設けることができます。今回はwhereキーワードとnew()制約を学んでいきます。whereキーワードwhereキーワードを使うと指定したクラス名型以外は型パラメータに設定できなくなります。クラス名これで型パラメータ<T>に入れられるのは「クラス名」の型のみになります。new()new()制約は先ほどのwhereと合わせて使い、これを設けるとそのジェネリッククラスの型パラメータには引数のないコンストラクタを持っている必要があるようになります。new()複数の制約を組み合わせることもでき、その場合は以下の様に書きます。new()例えばこうすれば指定したクラス名にはコンストラクタが必要になります。これらを実装したプログラムを作ってみます14行目でBruno115クラスのみを型パラメータに設定でき、なおかつそれにコンストラクタを持つように制約をかけました。そのままインスタンス化できています。他にも制約は色々あり、参照型のみを型パラメータにできるclassキーワードや値型のみを型パラメータにできるstructキーワードなど色々あります。うまく使い分けて安全なプログラムを組める様にしたいですね。今回はここまでにしておきます。プログラミングを勉強していると単純な機能拡張の仕組みと同じくらい今回のような安全性を高める仕組みが見受けられます。それほどプログラムの安全性を高めることは大切なんだなあと思いました。ところで新年初のおみくじが吉でした。最近自炊をよくするブルーノです。ヶ月)プログラミングド素人、ブルーノの勉強報告、兼好きなゲームの雑談のブログです。(4)はてなブログをはじめよう!covory10101101276さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。