문제

객체 이니셜 라이저를 사용하여 개인 속성을 소유 한 클래스 내에서 이니셜 라이저가 호출 될 때 개인 세트 자동 속성을 설정할 수 있습니까?나는 2 개의 클래스를 예로 포함 시켰습니다.

public class MyClass
{
    public string myName { get; private set; }
    public string myId { get; set; }

    public static MyClass GetSampleObject()
    {
        MyClass mc = new MyClass
        {
            myName = "Whatever", // <- works
            myId = "1234"
        };
        return mc;
    }


}

public class MyOtherClass
{
    public static MyClass GetSampleObject()
    {
        MyClass mc = new MyClass
        {
            myName = "Whatever", // <- fails
            myId = "1234"
        };
        return mc;
    }
}
.

도움이 되었습니까?

해결책

세터의 private 수정 자 - 묶는 유형으로 비공개입니다.

즉, 속성은 포함 된 유형만으로 설정할 수 있습니다.

이것이 사실이 아니라면, 당신은 재산을 설정할 수 없으며 효과적으로 읽기 전용이 될 것입니다.

msdn - 개인 (C # 참조) :

개인 멤버는 클래스의 본문 또는 선언 된 구조체에서만 액세스 할 수 있습니다

다른 팁

개인이 속성을 소유 한 클래스 내에서 개인적인 의미가 있기 때문에

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top