निम्नलिखित कोड विकसित करने के लिए बहुत दोहराव है:जेनरिक का उपयोग कैसे करें कोड है कि युगल के लिए काम करता है और दशमलव
public static double Interpolate(double x1, double y1, double x2, double y2, double x)
{
return y1 + (x - x1) * (y2 - y1)/(x2 - x1);
}
public static decimal Interpolate(decimal x1, decimal y1, decimal x2, decimal y2, decimal x)
{
return y1 + (x - x1) * (y2 - y1)/(x2 - x1);
}
हालांकि, जेनरिक उपयोग करने के लिए मेरे प्रयास संकलन नहीं करता है:
public static T Interpolate<T>(T x1, T y1, T x2, T y2, T x)
{
return y1 + (x - x1) * (y2 - y1)/(x2 - x1);
}
त्रुटि संदेश इस प्रकार है: -
त्रुटि 2 ऑपरेटर '' प्रकार के ऑपरेंड 'टी' और 'टी' सी करने के लिए लागू नहीं किया जा सकता: \ Git ... \ LinearInterpolator.cs
मुझे अपना कोड पुन: उपयोग कैसे करना चाहिए?
संपादित करें: इस मॉड्यूल के लिए तेज़ रनटाइम महत्वपूर्ण है।
सुंदर यकीन है कि आप और अधिक कर रहे हैं या उससे कम क्या तुम वहाँ के साथ अटक ... – Servy
'System.Double' और' System.Decimal' के रूप में आपको आवश्यक ऑपरेटरों को परिभाषित करने वाले एक सामान्य पूर्वजों को साझा न करें, मुझे डर है कि आप नहीं कर सकते हैं। –
सी # शब्द की सामान्य समझ में "जेनेरिक" नहीं है। टी से कुछ भी उपयोग करना संभव नहीं है, जब तक कि इसका प्रकार पहले से ज्ञात नहीं है (बाध्य)। –