Where:T (ジェネリック型制約)の用途について
Q&A
解決したいこと
生成AIが言うには、暗黙知として以下の3つがあるとされています。
1.データ表示系
class ListViewModel<TEntity> where TEntity : IEntity, INotifyPropertyChanged
これは「何でも入るList」ではない表示・更新・通知が前提のデータ群だと読んだだけでわかる。
2 . 入力/検証系
ここは特に無意識レベルです。
実行時例外で落とすのはダサい、検証できない型は設計ミス
という価値観が先にあって、where T : IValidatable
を書く。
3 .コマンド/処理系
ここも経験者ほど嫌悪感が強い領域です。
object parameter(引数)
(T)parameter
null地獄
これを何度も踏んだ結果、GenericController<TParam>に行き着く。
ChatGPTなどはこう言うのですが、ベテランの方はこれらについてどう考えているのか知りたいです。書くのがめんどうくさい?
検索しても単発型のCoding例しか出ませんので