2012-12-01 10 views
61

favore qualcuno può aiutare con il seguente errore:incoerente l'accessibilità: Tipo di proprietà è meno accessibile

Inconsistent accessibility: property type 'Test.Delivery' is less accessible than property 'Test.Form1.thelivery'

private Delivery thedelivery; 

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

Io non sono in grado di eseguire il programma a causa del messaggio di errore di incoerenza.

Ecco la mia classe di consegna:

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

risposta

143

rendere il vostro modificatore di accesso di classe public, basta aggiungere public Infront parola chiave del vostro nome di 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(); } 
     } 
    } 
} 
+0

0down voteaccept dispiace può dirmi come fare il mio classe per l'accesso del pubblico modificatore di –

+0

@DavidBukera: aggiornato , controlla il numero –

+0

@DavidBukera: penso che ce l'abbia fatta –

7

La classe Delivery non ha modificatore di accesso, il che significa che il valore predefinito è internal. Se si tenta quindi di esporre una proprietà di quel tipo come public, non funzionerà. Il tuo tipo (classe) deve avere lo stesso accesso o un accesso superiore come proprietà.

Ulteriori informazioni sui modificatori di accesso: http://msdn.microsoft.com/en-us/library/ms173121.aspx

5

La vostra classe Delivery è interno (la visibilità predefinita per le classi), tuttavia la proprietà (e presumibilmente la classe che contiene) sono pubblici, quindi la proprietà è più accessibile rispetto alla classe Delivery . È necessario rendere pubblico lo Delivery o limitare la visibilità della proprietà thelivery.

Problemi correlati