Bazı kodları incelerken, jenerik kullanmak için onu değiştirme fırsatını fark ettim. (Gizlenmiş) kodu şöyle görünür:
public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets)
{
var someProperty = typeOfTarget.GetProperty(possibleTargets[0]);
...
}
Bu kod şöyle, jeneriklerle değiştirilebilir:
public void DoAllTheThings<T>(object[] possibleTargets[0])
{
var someProperty = type(T).getProperty(possibleTargets[0]);
...
}
Bu yaklaşımın yararlarını ve eksikliklerini araştırırken genel istismarı adı verilen bir terim buldum . Görmek:
- Başlatılmamış (geliştiriciyi) jeneriklerden korumak
- https://stackoverflow.com/questions/28203199/is-this-an-abuse-of-generics
- https://codereview.stackexchange.com/q/60695
Sorum iki bölümden oluşuyor:
- Bunun gibi jenerik ilaçlara geçmenin bir faydası var mı? (Performans? Okunabilirlik?)
- Jenerik Kötüye Kullanım Nedir? Ve her seferinde bir tür parametresi kötüye kullanımı olduğunda bir genel kullanıyor mu?