[c#] 일관성없는 접근성 : 속성 유형에 대한 접근성이 떨어짐

누군가 다음 오류에 대해 도움을 줄 수 있습니다.

일관성없는 접근성 : 속성 유형 ‘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(); }
        }
    }
}



답변

클래스 이름 앞에 키워드를 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(); }
        }
    }
}


답변

클래스 Delivery에 액세스 수정자가 없으므로 기본값은 internal. 그런 다음 해당 유형의 속성을으로 노출하려고하면 public작동하지 않습니다. 유형 (클래스)은 속성과 동일하거나 더 높은 액세스 권한을 가져야합니다.

액세스 수정 자에 대한 추가 정보 : http://msdn.microsoft.com/en-us/library/ms173121.aspx


답변

귀하 Delivery의 경우, 해당 건물이보다 더 접근 할 수 있도록 클래스 (클래스의 기본 가시성), 그러나 재산 (그리고 아마도 포함하는 클래스) 내부에가 공개되어 Delivery클래스입니다. 당신도 화장을 할 필요가 Delivery공공, 또는의 가시성 제한 thelivery속성을.


답변