मैं रीशर्पर 5.0 का उपयोग कर रहा हूं, और सोच रहा हूं कि इसका कोड विश्लेषण फ़ंक्शन निम्नलिखित assemblies == null
को "अभिव्यक्ति हमेशा झूठा" टिप्पणी के साथ हाइलाइट करने के बारे में जानता है।ReSharper कैसे पता चलता है कि यह रिटर्न प्रकार कभी शून्य नहीं है?
var directory = new DirectoryInfo("somedir");
FileInfo[] assemblies = directory.GetFiles("*.dll");
if (assemblies == null <<--- this is highlighted with "Expression is always false"
|| assemblies.Length == 0)
{
_log.Warn("No assemblies found");
}
मैं समझूंगा कि रिटर्न प्रकार एक मूल्य-प्रकार था, जो यह नहीं है। मैं यह भी समझूंगा कि अगर कुछ प्रकार का कोड अनुबंध था या .GetFiles()
बताते हुए मेटाडेटा कभी वापस नहीं आएगा। लेकिन मुझे नहीं लगता कि वहाँ है।
तो - यह कैसे पता है? क्या मुझे कुछ स्पष्ट याद आ रही है, या क्या रीशेपर के पास कुछ विशेषाधिकार प्राप्त ज्ञान है, जैसे ढांचे के तरीकों के बारे में मेटाडेटा की आंतरिक सूची? या यह वास्तव में "आत्मनिरीक्षण" आंतरिक कोड है और इसे बाहर करता है?
वे सिर्फ दस्तावेज़ीकरण को देख सकते थे: "यदि कोई फाइल नहीं है, तो यह विधि एक खाली सरणी लौटाती है।" – stuartd
ओह हाँ, वे सिर्फ omniscienceHelper.ReadDocs() – heisenberg