सी # का उपयोग करना शुरू करने से पहले मैं ज्यादातर सी/सी ++ पृष्ठभूमि से आया था। चीजें मैं सी # में मेरी पहली परियोजना के साथ किया था में से एक था बनाने के इससी # में हस्ताक्षर किए गए सीएलआर प्रकारों का उपयोग क्यों करना मुश्किल है?
class Element{
public uint Size;
public ulong BigThing;
}
मैं तो तथ्य यह है कि इस आवश्यकता से अपमानित किया गया था की तरह एक वर्ग कास्टिंग: करता
int x=MyElement.Size;
रूप
int x=5;
uint total=MyElement.Size+x;
भाषा डिजाइनरों ने हस्ताक्षरित और हस्ताक्षरित पूर्णांक प्रकारों को निश्चित रूप से कास्ट करने का निर्णय क्यों नहीं लिया? और .NET लाइब्रेरी में बिना हस्ताक्षर किए गए प्रकारों का अधिक उपयोग क्यों किया जाता है? उदाहरण के लिए String.Length
नकारात्मक कभी नहीं हो सकता है, फिर भी यह एक हस्ताक्षरित पूर्णांक है।
सी ++ में भी हस्ताक्षर किए गए हस्ताक्षर किए गए या पीछे से एक कास्ट चेतावनी का कारण बनता है। –
@ सेव कंपाइलर के आधार पर: पी .. मुझे एहसास है कि मेरा पहला मामला कमजोर है, लेकिन मेरा दूसरा मामला वास्तव में और अधिक है जिसका मतलब है क्योंकि वहां डेटा हानि का कोई मौका नहीं है जब तक कि 'x' नकारात्मक – Earlz
दूसरी गणना पर , नीचे मेरी प्रतिक्रिया देखें ... –