(PropertyInfo SetValue and nulls से संबंधित)को ValueInype को सेट करने के लिए FieldInfo.SetValue का उपयोग नहीं करना चाहिए?
अगर मैं public class Thing { public int X; }
है, एक Thing o
, और एक FieldInfo fi
कि X
क्षेत्र को इंगित करता है, यह क्यों fi.SetValue(o, null)
कॉल करने के लिए कानूनी है? रनटाइम फ़ील्ड X
शून्य पर सेट करता है, यानी default(int)
शिकायत करने के बजाय ValueType
को null
पर सेट नहीं किया जा सकता है।
क्या कोई इस व्यवहार के पीछे डिजाइन पसंद को जानता है, जो कम से कम सी # से कम से कम आश्चर्य के मेरे सिद्धांत का उल्लंघन करता है?
मैं सहमत हूं कि कम से कम दस्तावेज़ों के अनुसार, इसे एक ArgumentException फेंकना चाहिए। – leppie
यह प्रतिबिंब एपीआई के लिए निराशाजनक व्यवहार है – Doug