可访问性不一致:属性类型难以访问


100

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

可访问性不一致:与属性“ Test.Form1.thelivery”相比,属性类型“ Test.Delivery”的访问性较差

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

Answers:


211

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

0down投票接受很抱歉,您能告诉我如何使我的课程成为公共访问修饰符
吗?

@DavidBukera:我想你明白了
Ravindra Bagale 2012年

5
我的解决方案是从类定义中删除 public
科迪

12

您的课程Delivery没有访问修饰符,这意味着它默认为internal。如果您随后尝试将该类型的属性公开为public,则它将无法正常工作。您的类型(类)需要具有与您的媒体资源相同或更高的访问权限。

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


8

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.