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

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

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


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.