2012-12-01 11 views
61

Proszę może ktoś pomóc z następującym błędem:Niekonsekwetne dostępność: rodzaj nieruchomości jest mniej dostępne

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

nie jestem w stanie uruchomić program z powodu komunikatu o błędzie niezgodności.

Oto moja klasa dostawy:

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

Odpowiedz

143

dokonać klasa public dostępu modyfikator, wystarczy dodać public Infront kluczowe z nazwą klasy

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 przykro można proszę mi powiedzieć jak zrobić moją klasę do publicznego dostępu modyfikator –

+0

@DavidBukera: zaktualizowane , sprawdź to –

+0

@DavidBukera: myślę, że masz to –

7

Twoja klasa Delivery ma modyfikator dostępu, co oznacza, że ​​ustawienia domyślne do internal. Jeśli spróbujesz wystawić właściwość tego typu jako public, nie będzie działać. Twój typ (klasa) musi mieć ten sam lub wyższy dostęp, co twoja własność.

Więcej o modyfikatorów dostępu: http://msdn.microsoft.com/en-us/library/ms173121.aspx

5

Twoja klasa Delivery jest wewnętrzne (domyślną widoczność dla klas), ale własność (i przypuszczalnie zawierający klasa) są publiczne, więc obiekt jest bardziej dostępna niż klasa Delivery . Musisz publicznie udostępnić Delivery lub ograniczyć widoczność właściwości thelivery.