【问题标题】:Inconsistent accessibility: property type is less accessible可访问性不一致:属性类型难以访问
【发布时间】:2012-11-19 13:36:58
【问题描述】:

请有人帮忙解决以下错误:

可访问性不一致:属性类型“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(); }
        }
    }
}

【问题讨论】:

    标签: c# properties


    【解决方案1】:

    让你的班级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(); }
            }
        }
    }
    

    【讨论】:

    • 我的解决方案是从我的类定义中删除 public
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-27
        • 2013-05-15
        相关资源
        最近更新 更多