2009-02-07 13 views
23

निम्नलिखित सी # कोड के साथ गलत क्या है? संकलक रिपोर्ट इस त्रुटि:निम्नलिखित सी # कोड के साथ असंगत पहुंच त्रुटि। क्यूं कर?

असंगत पहुँच:

interface Interface1<T> 
{ 
    bool IsDataValid(); 
    /* Other interfaces */ 
} 

public class Class1<T> 
{ 
    public Interface1<T> interface1; 

    public Class1(Interface1<T> interface1) 
    { 
     this.interface1 = interface1; 
    } 

} 
: पैरामीटर प्रकार 'ClassLibrary1.Interface1' विधि 'ClassLibrary1.Class1.Class1 (ClassLibrary1.Interface1)'

निम्न कोड के साथ की तुलना में कम पहुँचा जा सकता है

मैंने बाद में अपने कोड को विरासत का उपयोग करके अलग-अलग डिज़ाइन किया है, लेकिन अगर कोई मुझे बता सकता है कि उपर्युक्त क्या गलत है तो मैं इसकी सराहना करता हूं।

public interface Interface1<T>

आप पहुँच लेबल को छोड़ दें, यह internal में डिफ़ॉल्ट, कि:

उत्तर

49

अपने "Interface1" नहीं सार्वजनिक .. सार्वजनिक रूप

public interface Interface1<T> 
{ 
    bool IsDataValid(); 
    /* Other interfaces */ 
} 
+1

दोह। धन्यवाद। यह इतना स्पष्ट था कि मैं शर्मिंदा महसूस करता हूं। मजेदार कभी-कभी आप अंधेरे से स्पष्ट रूप से देखने में असफल होते हैं। – Crippeoblade

+0

हे .. कोई चिंता नहीं। – Sciolist

+1

वीएस -2010 में, मैंने कक्षा बनाने के बाद जनता को जोड़ा और इस त्रुटि से छुटकारा पाने के लिए परियोजना को साफ करना पड़ा। – teynon

5

मार्क अपने इंटरफेस है असेंबली के भीतर अन्य वर्गों के लिए ही सुलभ है।

1

दूसरा समाधान यह है कि यदि आपका इंटरफ़ेस सार्वजनिक नहीं है तो अपनी कक्षा को सार्वजनिक न करें जहां आप इंटरफ़ेस का संचालन कर रहे हों।

संबंधित मुद्दे