web-dev-qa-db-fra.com

Accessibilité incohérente: le type de propriété est moins accessible

S'il vous plaît quelqu'un peut-il aider avec l'erreur suivante:

Accessibilité incohérente: le type de propriété 'Test.Delivery' est moins accessible que la propriété 'Test.Form1.thelivery'

private Delivery thedelivery;

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

Je ne parviens pas à exécuter le programme en raison du message d'erreur d'incohérence.

Voici mon cours de livraison:

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(); }
        }
    }
}
79
David Bukera

Déclarez votre classe avec un modificateur d'accès public en ajoutant le mot clé public devant le nom de la classe.

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(); }
        }
    }
}
182
Ravindra Bagale

Votre classe Delivery n'a pas de modificateur d'accès, ce qui signifie qu'elle est définie par défaut sur internal. Si vous essayez ensuite d'exposer une propriété de ce type comme public, cela ne fonctionnera pas. Votre type (classe) doit avoir le même accès ou un accès supérieur à votre propriété.

En savoir plus sur les modificateurs d'accès: http://msdn.Microsoft.com/en-us/library/ms173121.aspx

10
J. Steen

Votre classe Delivery est interne (la visibilité par défaut des classes). Toutefois, la propriété (et probablement la classe qui le contient) est publique. La propriété est donc plus accessible que la classe Delivery. Vous devez rendre Delivery public ou limiter la visibilité de la propriété thelivery.

6
Lee