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


100

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 peux pas exécuter le programme en raison du message d'erreur d'incohérence.

Voici ma classe 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(); }
        }
    }
}

Réponses:


211

Déclarez votre classe avec un publicmodificateur d'accès à la place en ajoutant le publicmot - clé 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(); }
        }
    }
}

0down voteaccept désolé pouvez-vous s'il vous plaît me dire comment faire de ma classe en modificateur d'accès public
David Bukera

@DavidBukera: Je pense que vous l'avez compris
Ravindra Bagale

5
Ma solution était de SUPPRIMER public de ma définition de classe.
Cody

12

Votre classe Deliveryn'a pas de modificateur d'accès, ce qui signifie qu'elle est par défaut internal. Si vous essayez ensuite d'exposer une propriété de ce type en tant que 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


8

Votre Deliveryclasse est interne (la visibilité par défaut pour les classes), cependant la propriété (et vraisemblablement la classe contenant) sont publiques, donc la propriété est plus accessible que la Deliveryclasse. Vous devez soit rendre Deliverypublic, soit restreindre la visibilité de la theliverypropriété.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.