के बीच अस्पष्ट है क्यों मुझे एक ही हस्ताक्षर के साथ स्थिर और गैर स्थैतिक तरीकों की अनुमति नहीं है?कॉल निम्न विधियों या गुणों (एक स्थैतिक और एक गैर स्थैतिक)
चलो कहते हैं कि मैं इस
public class TestClass
{
public object thing { get; set; }
public TestClass()
{
}
public TestClass(object thing)
{
this.thing = thing;
}
public static TestClass ConvertTestClass(object thing)
{
return new TestClass(thing);
}
public TestClass ConvertTestClass(object thing)
{
this.thing = thing;
return this;
}
}
की तरह एक वर्ग करते हैं और मैं इस
public class SomeOtherClass
{
public SomeOtherClass()
{
TestClass tc = TestClass.ConvertTestClass(new object());
TestClass tc2 = new TestClass();
tc2.ConvertTestClass(new object());
}
}
मैं TestClass.ConvertTestClass(new object());
पर निम्नांकित त्रुटियाँ कॉल है मिल की तरह उपयोग करने का प्रयास करें निम्न विधियों या गुणों के बीच संदिग्ध: 'TestClass.ConvertTestClass (ऑब्जेक्ट)' और 'TestClass.ConvertTestClass (ऑब्जेक्ट)'
और पर tc2.ConvertTestClass(new object());
कॉल इन त्रुटियों को निम्न विधियों या गुणों के बीच अस्पष्ट है: 'TestClass.ConvertTestClass (वस्तु)' और 'TestClass.ConvertTestClass (वस्तु)'
सदस्य 'TestClass.ConvertTestClass (ऑब्जेक्ट)' को एक इंस्टेंस संदर्भ से एक्सेस नहीं किया जा सकता है; इसके बजाय
क्या संकलक वास्तव में उस विधि के स्थिर और गैर स्थैतिक संस्करणों के बीच अंतर नहीं बता सकता है या क्या मुझे यहां कुछ याद आ रहा है?
मैं रीशेपर का उपयोग नहीं कर रहा हूं (जो अन्य प्रश्नों में एक समान समस्या की जड़ लग रहा था)।
आप 'TestClass' के अंदर से 'ConvertTestClass (new object())' के साथ क्या कहने की उम्मीद करेंगे? ;) लेकिन अंत में यह स्पष्टता के लिए शायद एक डिजाइन निर्णय था। – Marvin
@ मारविन जो निश्चित रूप से संदिग्ध होगा। लेकिन, यह कहकर 'यह नहीं होगा। ConvertTestClass' या' TestClass.ConvertTestClass' अस्पष्टता को हल करता है? कभी-कभी हमें संकलक के लिए इस प्रकार की स्पष्टीकरण करने के लिए कहा जाता है ('System.Windows.Shapes.Path'/'System.IO.Path') – Brad
इस पर एक नज़र डालें [answer] (http://stackoverflow.com/ए/6033530/3052062) जॉन स्कीट द्वारा – chomba