मैं एक परियोजना मैं पर काम कर रहा हूँ में निम्न कोड की तरह कुछ के साथ समाप्त हो गया का उपयोग कर। मैंने सोचा कि यह वास्तव में अजीब था कि मुझे ऐसा करने की इजाजत थी, लेकिन अब मैं आश्चर्यचकित कर रहा हूं कि मेरे हिस्से पर एक आर्किटेक्चरल गैफ की संभावना सबसे ज्यादा है।उमंग में अजीब इंटरफ़ेस बहुरूपता इंटरफ़ेस रचना
आप मेरे प्रश्न हैं:
- वास्तव में क्या यह कहा जाता है?
- कुछ असली दुनिया इस बात का उपयोग करता है क्या हैं?
- क्यों किसी को भी ऐसा करने के लिए चाहेगा?
यहाँ मेरी इंटरफेस हैं:
namespace ThisAndThat
{
public class CanDoThisAndThat : ICanDoThisAndThat
{
public string Do()
{
return "I Can Do This And That!";
}
string ICanDoThis.Do()
{
return "I Can Do This!";
}
string ICanDoThat.Do()
{
return "I Can Do That!";
}
}
}
और मेरे गुजर परीक्षण:
namespace ThisAndThat
{
public interface ICanDoThis
{
string Do();
}
public interface ICanDoThat
{
string Do();
}
public interface ICanDoThisAndThat : ICanDoThis, ICanDoThat
{
new string Do();
}
}
यहाँ मेरी ठोस वर्ग है
using Xunit;
namespace ThisAndThat.Tests
{
public class ThisAndThatTests
{
[Fact]
public void I_Can_Do_This_And_That()
{
ICanDoThisAndThat sut = new CanDoThisAndThat();
Assert.Equal("I Can Do This And That!", sut.Do());
}
[Fact]
public void I_Can_Do_This()
{
ICanDoThis sut = new CanDoThisAndThat();
Assert.Equal("I Can Do This!", sut.Do());
}
[Fact]
public void I_Can_Do_That()
{
ICanDoThat sut = new CanDoThisAndThat();
Assert.Equal("I Can Do That!", sut.Do());
}
}
}
धन्यवाद, आप जवाब देने क्योंकि आप का सही नाम क्या हो रहा है प्रदान की है। –
डाउनवॉटेड क्योंकि आपको अपने उत्तर में बहुत सारी त्रुटियां मिली हैं। सबसे पहले, कक्षा 'CanDoThisAndThat' तीन इंटरफेस लागू करता है, दो नहीं। 'आईसीनडोथिस एंड थैट' कहता है कि, जब लागू होता है, तो आपको दो अन्य इंटरफेस भी लागू करना होगा। साथ ही, सिंक्रूट को उपयोग को हतोत्साहित करने के लिए इसे छिपाने के लिए इम्प्लेमेनेशंस द्वारा स्पष्ट रूप से परिभाषित नहीं किया जाता है, आमतौर पर इसे साइट से बाहर शायद ही कभी इस्तेमाल किए जाने वाले सदस्यों को रखने के लिए किया जाता है, या यदि तथ्य यह है कि एक इंटरफ़ेस लागू किया गया है तो इससे कोई फर्क नहीं पड़ता। Http://msdn.microsoft.com/en-us/library/system.collections.icollection.syncroot.aspx और http://msdn.microsoft.com/en-us/library/bb356596.aspx पर देखें। – Andy
कोई दस्तावेज उस दस्तावेज़ में कहता है कि आपको सिंकलॉक का उपयोग नहीं करना चाहिए, न ही उन्हें अप्रचलित के रूप में चिह्नित किया जाना चाहिए, जो वास्तव में किया जाता है जब कुछ अब उपयोग नहीं किया जाना चाहिए। – Andy