विजुअल स्टूडियो 2010 (संभवतः 2008 के साथ) के साथ मैं व्यवहार को देख रहा हूं जहां इंटेलिसेंस एनम्स के लिए पूरी तरह से योग्य नामस्थान का सुझाव देगा।विजुअल स्टूडियो पूरी तरह से योग्य नामस्थानों का सुझाव देता है जब आवश्यक नहीं
उदाहरण के लिए, मैं इस तरह कोड लिख सकते हैं:
element.HorizontalAlignment = HorizontalAlignment.Right;
element.VerticalAlignment = VerticalAlignment.Bottom;
लेकिन जब मैंने उसे लिखने की कोशिश, यह पता चलता है मैं इस तरह इसे लिखने: वास्तव में
element.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;
element.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
यह अनावश्यक अतिरिक्त कोड कर सकते हैं जोड़ो और इसे कम पठनीय बनाता है, और मुझे इससे बचने के लिए इंटेलिजेंस के साथ मूल रूप से लड़ना होगा।
क्या इसका कोई कारण है? क्या मैं इसे बंद कर सकता हूं? मुझे लगता है कि कारण यह है कि enum का नाम संपत्ति के नाम के समान है। लेकिन यह वास्तव में एक अच्छा कारण नहीं है।
संपादित करें:
यहाँ एक और उदाहरण यह दर्शाता है कि क्यों पूरी तरह से योग्य नामकरण आवश्यक नहीं है है।
using SomeOtherNamespace;
namespace SomeNamespace
{
public class Class1
{
public Class2 Class2 { get; set; }
public Class1()
{
// These all compile fine and none require fully qualified naming. The usage is context specific.
// Intellisense lists static and instance members and you choose what you wanted from the list.
Class2 = Class2.Default;
Class2.Name = "Name";
Class2.Name = Class2.Default.Name;
Class2 = Class2;
}
}
}
namespace SomeOtherNamespace
{
public class Class2
{
public static Class2 Default { get; set; }
// public static Class2 Class2; (This throws an error as it would create ambiguity and require fully qualified names.)
// public static string Name { get; set; } (This also throws an error because it would create ambiguity and require fully qualified names.
public string Name { get; set; }
}
}
घुसपैठ; वीएस ने मेरी याद दिलाने के लिए पूरी तरह से योग्य नामों का सुझाव नहीं दिया है। –
मेरे पास विंडोज फॉर्म एप्लिकेशन में पहले एक ही समस्या थी। यह सुझाव दे रहा था कि मैं सिर्फ DialogResult.OK की बजाय System.Windows.Forms.DialogResult.OK लिखता हूं। दोबारा, मुझे पूरा यकीन है कि यह तथ्य है कि उस क्षेत्र में "डायलॉग रिसेट" नामक एक स्थानीय संपत्ति है (एक फॉर्म)। –
सही। मैं इस तरह की स्थिति में इसकी आवश्यकता होगी। –