असंगत अभिगम्यता: संपत्ति प्रकार कम सुलभ है


100

कृपया निम्न त्रुटि के साथ कोई मदद कर सकता है:

असंगत अभिगम्यता: संपत्ति प्रकार 'Test.Delivery' संपत्ति की तुलना में कम सुलभ है 'Test.Form1.thelivery'

private Delivery thedelivery;

public Delivery thedelivery
{
    get { return thedelivery; }
    set { thedelivery = value; }
}

असंगतता के त्रुटि संदेश के कारण मैं कार्यक्रम नहीं चला पा रहा हूं।

यहाँ मेरा वितरण वर्ग है:

namespace Test
{
    class Delivery
    {
        private string name;
        private string address;
        private DateTime arrivalTime;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public string Address
        {
            get { return address; }
            set { address = value; }
        }

        public DateTime ArrivlaTime
        {
            get { return arrivalTime; }
            set { arrivalTime = value; }
        }

        public string ToString()
        {
            { return name + address + arrivalTime.ToString(); }
        }
    }
}

जवाबों:


211

वर्ग नाम के सामने कीवर्ड publicजोड़कर अपनी कक्षा को एक पहुँच संशोधक के साथ घोषित करेंpublic

namespace Test
{
    public class Delivery
    {
        private string name;
        private string address;
        private DateTime arrivalTime;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public string Address
        {
            get { return address; }
            set { address = value; }
        }

        public DateTime ArrivlaTime
        {
            get { return arrivalTime; }
            set { arrivalTime = value; }
        }

        public string ToString()
        {
            { return name + address + arrivalTime.ToString(); }
        }
    }
}

0 मत मतदाता क्षमा करें, क्या आप मुझे बता सकते हैं कि मैं अपनी कक्षा को सार्वजनिक अभिगम संशोधक कैसे बना सकता हूँ
डेविड बुकेरा

@ दाविद बुकेरा: मुझे लगता है कि आपको यह मिल गया है
रवींद्र बागले

5
मेरे समाधान के लिए किया गया निकालें public मेरी कक्षा परिभाषा से।
कोडी

12

आपकी कक्षा Deliveryमें कोई पहुँच संशोधक नहीं है, जिसका अर्थ है कि यह चूक है internal। यदि आप इसके बाद उस प्रकार की संपत्ति को उजागर करने का प्रयास करते हैं public, तो यह काम नहीं करेगा। आपके प्रकार (वर्ग) को आपकी संपत्ति के समान, या उच्चतर पहुंच की आवश्यकता होती है।

एक्सेस संशोधक के बारे में अधिक जानकारी: http://msdn.microsoft.com/en-us/library/ms173121.aspx


8

आपकी Deliveryकक्षा आंतरिक है (कक्षाओं के लिए डिफ़ॉल्ट दृश्यता), हालांकि संपत्ति (और संभवतः युक्त वर्ग) सार्वजनिक है, इसलिए संपत्ति Deliveryवर्ग की तुलना में अधिक सुलभ है । आपको या तो Deliveryसार्वजनिक करने या theliveryसंपत्ति की दृश्यता को प्रतिबंधित करने की आवश्यकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.