Aksesibilitas tidak konsisten: tipe properti kurang dapat diakses

100

Tolong bisakah seseorang membantu dengan kesalahan berikut:

Aksesibilitas tidak konsisten: jenis properti 'Test.Delivery' kurang dapat diakses daripada properti 'Test.Form1.thelivery'

private Delivery thedelivery;

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

Saya tidak dapat menjalankan program karena pesan kesalahan tidak konsisten.

Ini kelas pengiriman saya:

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

Jawaban:

211

Deklarasikan kelas Anda dengan publicpengubah akses dengan menambahkan publickata kunci di depan nama kelas

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(); }
        }
    }
}
Ravindra Bagale
sumber
0down suara terima maaf bisakah Anda memberi tahu saya bagaimana menjadikan kelas saya pengubah akses publik
David Bukera
@DavidBukera: Saya pikir Anda mengerti
Ravindra Bagale
5
Solusi saya adalah MENGHAPUS public dari definisi kelas saya.
Cody
12

Kelas Anda Deliverytidak memiliki pengubah akses, yang artinya adalah default internal. Jika Anda kemudian mencoba untuk mengekspos properti jenis itu sebagai public, itu tidak akan berhasil. Jenis (kelas) Anda harus memiliki akses yang sama atau lebih tinggi dengan properti Anda.

Selengkapnya tentang pengubah akses: http://msdn.microsoft.com/en-us/library/ms173121.aspx

J. Steen
sumber
8

DeliveryKelas Anda bersifat internal (visibilitas default untuk kelas), namun properti (dan mungkin kelas yang memuatnya) bersifat publik, sehingga properti lebih mudah diakses daripada Deliverykelas. Anda harus Deliverymempublikasikan atau membatasi visibilitas theliveryproperti.

Lee
sumber