मैंने जेनिक्स का अधिक उपयोग नहीं किया है और इसलिए यह पता नहीं लगाया जा सकता है कि डुप्लिकेशंस को कम करने के लिए जेनरिक का उपयोग करके निम्नलिखित तीन तरीकों को एक में बदलना संभव है। दरअसल मेरे कोड में वर्तमान में छह विधियां हैं लेकिन यदि आप इसे तीनों के लिए हल कर सकते हैं तो शेष को वही समाधान के साथ वैसे भी काम करना चाहिए।सी # जेनेरिक का उपयोग करके इन 3 तरीकों को एक में कैसे चालू करें?
private object EvaluateUInt64(UInt64 x, UInt64 y)
{
switch (Operation)
{
case BinaryOp.Add:
return x + y;
case BinaryOp.Subtract:
return x - y;
case BinaryOp.Multiply:
return x * y;
case BinaryOp.Divide:
return x/y;
case BinaryOp.Remainder:
return x % y;
default:
throw new ApplicationException("error");
}
}
private object EvaluateFloat(float x, float y)
{
switch(Operation)
{
case BinaryOp.Add:
return x + y;
case BinaryOp.Subtract:
return x - y;
case BinaryOp.Multiply:
return x * y;
case BinaryOp.Divide:
return x/y;
case BinaryOp.Remainder:
return x % y;
default:
throw new ApplicationException("error");
}
}
private object EvaluateDouble(double x, double y)
{
switch (Operation)
{
case BinaryOp.Add:
return x + y;
case BinaryOp.Subtract:
return x - y;
case BinaryOp.Multiply:
return x * y;
case BinaryOp.Divide:
return x/y;
case BinaryOp.Remainder:
return x % y;
default:
throw new ApplicationException("error");
}
}
मैं एक सरल अभिव्यक्ति पार्सर है कि तब इस तरह के अलावा/घटाव आदि मैं ऊपर तरीकों का उपयोग वास्तविक गणित प्रासंगिक प्रकार का उपयोग किया पाने के लिए के रूप में सरल द्विआधारी संचालन का मूल्यांकन करने की जरूरत है निर्माण कर रहा हूँ। लेकिन एक बेहतर जवाब होना चाहिए!
लोकप्रिय अटकलों के विपरीत, मार्क और मैं वास्तव में दो अलग-अलग लोग हैं। हम कभी-कभी दिमाग साझा करते हैं। –
शायद हम सिर्फ * सोचें * कि ... कभी भी फाइट क्लब देखें? –
एक्सचेंज करने योग्य मस्तिष्क? ठंडा। – EricSchaefer