मैं इस मामले में इंटरफेस का उपयोग ज्यादातर ऑब्जेक्ट के एक अपरिवर्तनीय उदाहरण के लिए हैंडल के रूप में कर रहा हूं। समस्या यह है कि सी # में नेस्टेड इंटरफेस की अनुमति नहीं है। यहां कोड है:नेस्टेड इंटरफेस के विकल्प (सी # में संभव नहीं)
public interface ICountry
{
ICountryInfo Info { get; }
// Nested interface results in error message:
// Error 13 'ICountryInfo': interfaces cannot declare types
public interface ICountryInfo
{
int Population { get; }
string Note { get; }
}
}
public class Country : ICountry
{
CountryInfo Info { get; set; }
public class CountryInfo : ICountry.ICountryInfo
{
int Population { get; set; }
string Note { get; set; }
.....
}
.....
}
मैं एक विकल्प की तलाश में हूं, किसी को भी समाधान होगा?
क्या कोई विशेष कारण है कि आप 'ICountryInfo' को नेस्टेड करना चाहते हैं? – AakashM
हां, एप्लिकेशन में 100 से अधिक कक्षाएं हैं जिनमें कई नेस्टेड कक्षाएं हैं जो समान नाम हैं। अगर मैं उस सेटअप को बरकरार रखता हूं तो यह बहुत साफ है। इंटरफेस का उपयोग करने के लिए, यह उनके अपरिवर्तनीय समकक्षों का एक तरीका है। एक बार ऑब्जेक्ट्स को तुरंत चालू कर दिया गया है, मुख्य अनुप्रयोग ज्यादातर निर्भरता इंजेक्शन पैटर्न का उपयोग करके अपने संबंधित इंटरफेस से संबंधित है। – ericdes