कुछ कोड की समीक्षा करते समय, मैंने जेनरिक का उपयोग करने के लिए इसे बदलने का अवसर देखा। (अस्पष्ट) कोड जैसा दिखता है:
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
मेरा प्रश्न दो भागों में आता है:
- क्या इस तरह से जेनरिक में जाने के कोई लाभ हैं? (प्रदर्शन? पठनीयता?)
- जेनरिक एब्यूज क्या है? और हर बार एक जेनेरिक का उपयोग करते हुए एक प्रकार का पैरामीटर एक दुरुपयोग है ?