यह एक अनुमानी है और heuristics परिभाषा से, कर रहे हैं, अधूरा।
इस हेरिस्टिक के लिए स्रोत कोड यहां पाया जा सकता है: Roslyn Source: Binder.GetIsOperatorConstantResult।
// The result of "x is T" can be statically determined to be true if x is an expression
// of non-nullable value type T. If x is of reference or nullable value type then
// we cannot know, because again, the expression value could be null or it could be good.
जाहिर है, अनुमानी अगर यह जाना जाता है (अपने उदाहरण के रूप में) है कि x
एक गैर-शून्य अभिव्यक्ति है सुधार किया जा सकता: कोड निम्नलिखित उद्धरण शामिल हैं। हालांकि, Eric Lippert writes in his blog के रूप में, प्रत्येक चेतावनी (वास्तव में - प्रत्येक कंपाइलर सुविधा) की लागत होती है, और जाहिर है, रोस्लीन डेवलपर्स ने इस रिलीज के लिए इस सुविधा को काफी महत्वपूर्ण नहीं माना।
Thomas Weller's answer दिखाता है, इस अंतर को भरने वाले तीसरे पक्ष के समाधान हैं।
हालांकि यह विजुअल स्टूडियो के भीतर बहुत अच्छा है, लेकिन जब 'त्रुटियों के रूप में चेतावनियों का इलाज' किया जाता है तो यह निर्माण को तोड़ता नहीं है। इसे देखें: http://stackoverflow.com/q/3361495/2557263 – Alejandro