मैं =
ऑपरेटर पता अतिभारित नहीं किया जा सकता है, लेकिन क्या मैं यहाँ करना चाहते हैं के लिए एक रास्ता होना चाहिए:सी # में ओवरलोडिंग असाइनमेंट ऑपरेटर
मैं बस, क्लास बना रहा हूं मात्रात्मक इकाइयों का प्रतिनिधित्व करने के बाद से मैं मैं भौतिकी का थोड़ा सा कर रहा हूँ। जाहिर है, मैं सिर्फ एक आदिम से प्राप्त नहीं कर सकता, लेकिन मैं चाहता हूं कि मेरी कक्षाएं प्राइमेटिव्स की तरह व्यवहार करें - मैं बस उन्हें अलग-अलग टाइप करना चाहता हूं।
तो मैं जाने के लिए सक्षम होगा,
Velocity ms = 0;
ms = 17.4;
ms += 9.8;
आदि
मैं ऐसा करने के तरीके यकीन नहीं है। मैं सोचा मैं सिर्फ इतना जैसे कुछ वर्गों लिखना चाहते हैं:
class Power
{
private Double Value { get; set; }
//operator overloads for +, -, /, *, =, etc
}
लेकिन जाहिरा तौर पर मैं असाइनमेंट ऑपरेटर को ओवरलोड नहीं कर सकते। क्या कोई तरीका है कि मैं इस व्यवहार को प्राप्त कर सकता हूं?
क्या आपने एफ # की 'माप की इकाइयों' सुविधा को देखा है? यह एम (केजी और एम/एस जैसे मानक (आईएसओ) इकाइयों को जानता है, और यह इकाइयों के साथ भी गणना कर सकता है। –
बिल्कुल, मैं अब इसका उपयोग कर रहा हूं। यह आईएसओ इकाइयों को नहीं जानता है, बल्कि आप इकाइयों को स्वयं परिभाषित करते हैं, जैसे '[] टाइप एम; नाव = 2.279069767' –
क्षमा करें, मैं SI इकाइयों, जो 'माइक्रोसॉफ्ट में पूर्वनिर्धारित कर रहे हैं का कहना है कि करने के लिए होती: [] प्रकार s' और फिर तरह बातें उपयोग कर सकते हैं' एक = 9.8 /4.3
'जो पैदावार' वैल एक हैं। FSharp.Math.SI'। देखें: http://blogs.msdn.com/b/andrewkennedy/archive/2008/09/02/units-of-measure-in-f-part-two-unit-conversions.aspx –