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


100

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

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

답변:


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 voteaccept 죄송 어떻게 공공 액세스 한정자에 내 수업을 말해 주실 래요
데이비드 Bukera

@DavidBukera : 나는 u는 그것을 찾은 것 같아
라빈 드라 Bagale을

5
내 해결책은 내 클래스 정의에서 제거 public 하는 것입니다.
Cody

12

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

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


8

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.