いくつかのコードをレビューしているときに、ジェネリックを使用するように変更する機会に気付きました。(難読化された)コードは次のようになります。
public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets)
{
var someProperty = typeOfTarget.GetProperty(possibleTargets[0]);
...
}
このコードは、次のようにジェネリックに置き換えることができます。
public void DoAllTheThings<T>(object[] possibleTargets[0])
{
var someProperty = type(T).getProperty(possibleTargets[0]);
...
}
このアプローチの利点と欠点を研究する際に、ジェネリック乱用と呼ばれる用語を見つけました。見る:
- 未開始(開発者)をジェネリックから保護する
- https://stackoverflow.com/questions/28203199/is-this-an-abuse-of-generics
- https://codereview.stackexchange.com/q/60695
私の質問は2つの部分に分かれています。
- このようなジェネリックに移行する利点はありますか?(パフォーマンス?可読性?)
- ジェネリック乱用とは何ですか?そして、パラメータの種類があり、一般的なすべての時間を使用している乱用は?