मैं दो कंस्ट्रक्टर्स कि इस तरह दिखेगा के साथ एक वर्ग है:,CA1062: सह निर्माता पर ValidateArgumentsOfPublicMethods कॉल
public MyClass(SomeOtherClass source) : this(source, source.Name) { }
public MyClass(SomeOtherClass source, string name) { /* ... */ }
जब मैं FxCop चलाने के लिए, इसे सही ढंग से CA1062: ValidateArgumentsOfPublicMethods का उल्लंघन की रिपोर्ट क्योंकि source
में null
है अगर पहला कन्स्ट्रक्टर, source.Name
पर NullReferenceException
फेंक देगा।
क्या इस चेतावनी को ठीक करने का कोई तरीका है?
मैं एक विस्तार विधि बना सकता हूं जो शून्य के लिए जांचता है और इसकी तर्क देता है, लेकिन यह बदसूरत होगा। साथ ही, जैसा कि मैं समझता हूं, यह चेतावनी को हल नहीं करेगा क्योंकि FxCop यह नहीं समझ पाएगा कि यह क्या करता है।
हां, यही वह है। आप किसी भी स्थैतिक विधि का भी उपयोग कर सकते हैं। – Groo