可访问性不一致:属性类型不易访问

时间:2012-12-01 14:25:06

标签: c# properties

有人可以帮助解决以下错误:

  

可访问性不一致:属性类型“Test.Delivery”的可访问性低于属性“Test.Form1.thelivery”

private Delivery thedelivery;

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

由于出现不一致的错误消息,我无法运行该程序。

这是我的交付课程:

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

3 个答案:

答案 0 :(得分:173)

制作您的课程public访问修饰符,只需在您的班级名称前面添加public个关键字

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

答案 1 :(得分:9)

您的班级Delivery没有访问修饰符,这意味着它默认为internal。如果您尝试将该类型的属性公开为public,则它将无效。您的类型(类)需要与您的属性具有相同或更高的访问权限。

有关访问修饰符的更多信息:http://msdn.microsoft.com/en-us/library/ms173121.aspx

答案 2 :(得分:6)

您的Delivery类是内部的(类的默认可见性),但属性(可能是包含类)是公共的,因此该属性比Delivery类更易于访问。您需要公开Delivery,或限制thelivery属性的可见性。