2012-12-01 13 views
61

Bitte kann jemand mit dem folgenden Fehler helfen:Uneinheitliche Zugänglichkeit: Objekttyp ist weniger zugänglich

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

Ich bin nicht in der Lage, das Programm aufgrund der Fehlermeldung der Inkonsistenz laufen.

Hier ist meine Lieferung Klasse:

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

Antwort

143

Klasse public Zugriffsmodifikator machen, fügen Sie einfach public Schlüsselwort vor Ihren Klassennamen

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 Entschuldigung können Sie mir bitte sagen, wie meine Klasse zu öffentlichen Zugriffsmodifikator –

+0

@DavidBukera zu machen: aktualisiert , überprüfen Sie es –

+0

@DavidBukera: Ich denke, du hast es –

7

Ihre Klasse Delivery keine Zugriffsmodifikator hat, die es standardmäßig internal bedeutet. Wenn Sie dann versuchen, eine Eigenschaft dieses Typs als public verfügbar zu machen, wird es nicht funktionieren. Ihr Typ (Klasse) muss denselben oder einen höheren Zugriff wie Ihre Eigenschaft haben.

Mehr über Zugriffsmodifikatoren: http://msdn.microsoft.com/en-us/library/ms173121.aspx

5

Ihre Delivery Klasse ist intern (die Sichtbarkeit aller Klassen), aber die Eigenschaft (und vermutlich der enthaltenden Klasse) sind öffentlich, so dass die Immobilie ist zugänglicher als die Delivery Klasse . Sie müssen entweder Delivery öffentlich machen oder die Sichtbarkeit der thelivery Eigenschaft einschränken.

Verwandte Themen