변경 가능한 객체가있는 자동 속성

우리의

가변 개체에 대한 속성을 만들려고합니다. 자동 속성에 문제가 있습니까? 예를 들어, 다음 코드는 변경 가능한 객체의 원치 않는 조작을 허용합니다. 이것을 어떻게 피할 수 있습니까?

public class Mutable{
    public int Value { get; set; }
}

public class ClassWithMutable{
    public Mutable Object { get; }

    public ClassWithMutable(){
        this.mutable = new Mutable();
        this.mutable.Value = 0;
    }
}

public class Demo{
    public static void Main(String[] args){
        ClassWithMutable test = new ClassWithMutable();
        Mutable o = test.Object;
        o.Value = 1;
    }
}
Blorgbeard

get속성 의을 노출하는 인터페이스 와이를 구현하는 개인 클래스를 사용할 수 있습니다.

public interface IImmutable {
    int Value { get; }
}

public class ClassWithImmutable{

    private Mutable _object;        
    public IImmutable Object { get { return _object; } }

    public ClassWithImmutable(){
        this._object = new Mutable();
        this._object.Value = 0;
    }

    private class Mutable : IImmutable {
        public int Value { get; set; }
    }

}

public class Demo{
    public static void Main(String[] args){
        ClassWithImmutable test = new ClassWithImmutable();
        IImmutable o = test.Object;
        o.Value = 1;    // fails
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JavaScript : 다른 객체가 다른 속성에 동일한 값을 가지고있는 경우 객체 값 변경

분류에서Dev

동일한 객체에 다른 속성 값이있는 경우 객체 배열에서 Object 속성 가져 오기

분류에서Dev

파이썬에서 변경 가능한 속성을 변경 불가능한 객체로 반환

분류에서Dev

변경 가능한 특성 개체 참조를 상자로 이동

분류에서Dev

가변 생성자가있는 객체를 맵에 넣기

분류에서Dev

객체가 다른 방법으로 처리되는 동안 객체 속성의 변경 관리

분류에서Dev

쓰기 가능한 속성 설명자를 변경하여 JavaScript 파일 이름을 변경해도됩니까?

분류에서Dev

간접을 추가하지 않고 루프의 여러 반복에서 동일한 변경 가능한 특성 객체를 전달할 수 있습니까?

분류에서Dev

객체 키가있는 변경 가능한 맵

분류에서Dev

가능 중포 기지에서 자동으로 선택 사용자 속성을 변경하는 것입니다

분류에서Dev

Nullable inout 생성자가 변경 가능한 개체를 만듭니다.

분류에서Dev

자바 스크립트 : 객체 속성별로 키가있는 객체의 정렬 동작 배열 차이

분류에서Dev

MRC를 사용하는 변경 가능한 ivar의 변경 불가능한 속성

분류에서Dev

개인 속성 및 변경 가능한 유형

분류에서Dev

게으른 속성-유효한 변경 가능 사용?

분류에서Dev

Javascript는 NaN 문자열 속성을 사용 가능한 숫자로 변환

분류에서Dev

Javascript는 NaN 문자열 속성을 사용 가능한 숫자로 변환

분류에서Dev

자동 완성이 편집 가능한 DataTable에있는 경우 탭 키가 작동하지 않습니다.

분류에서Dev

속성 변경 사항을 포함하는 객체를 반환하는 ES6 함수가 있습니까?

분류에서Dev

객체 속성 중 하나가 자바 스크립트에서 다른 객체로 확산되는 배열을 변경하는 방법

분류에서Dev

동일한 ID가있는 경우 동일한 값을 가진 속성 추가

분류에서Dev

동일한 값을 가진 Javascript 객체 속성은 그렇지 않은 경우 동일한 변경을 경험합니다 (스플 라이스)

분류에서Dev

구성 가능한 StyleSheets 변경 관찰

분류에서Dev

속성 이름이없는 숫자가있는 객체의 Node.js 배열

분류에서Dev

바인딩 된 속성과 ListView의 직접적인 가시성 변경이있는 이상한 동작

분류에서Dev

변경 가능한 참조를 자신으로 "이동"

분류에서Dev

참조의 변경 가능성과 참조가 참조하는 값의 변경 가능성에 대한 약간의 혼동

분류에서Dev

동일한 속성 _id 뒤에 다른 객체에 객체를 추가하는 자바 스크립트

분류에서Dev

C ++에서 const 객체를 선언하려면 사용자 정의 기본 생성자가 필요합니다. 변경 가능한 멤버 변수가 있다면 왜 안됩니까?

Related 관련 기사

  1. 1

    JavaScript : 다른 객체가 다른 속성에 동일한 값을 가지고있는 경우 객체 값 변경

  2. 2

    동일한 객체에 다른 속성 값이있는 경우 객체 배열에서 Object 속성 가져 오기

  3. 3

    파이썬에서 변경 가능한 속성을 변경 불가능한 객체로 반환

  4. 4

    변경 가능한 특성 개체 참조를 상자로 이동

  5. 5

    가변 생성자가있는 객체를 맵에 넣기

  6. 6

    객체가 다른 방법으로 처리되는 동안 객체 속성의 변경 관리

  7. 7

    쓰기 가능한 속성 설명자를 변경하여 JavaScript 파일 이름을 변경해도됩니까?

  8. 8

    간접을 추가하지 않고 루프의 여러 반복에서 동일한 변경 가능한 특성 객체를 전달할 수 있습니까?

  9. 9

    객체 키가있는 변경 가능한 맵

  10. 10

    가능 중포 기지에서 자동으로 선택 사용자 속성을 변경하는 것입니다

  11. 11

    Nullable inout 생성자가 변경 가능한 개체를 만듭니다.

  12. 12

    자바 스크립트 : 객체 속성별로 키가있는 객체의 정렬 동작 배열 차이

  13. 13

    MRC를 사용하는 변경 가능한 ivar의 변경 불가능한 속성

  14. 14

    개인 속성 및 변경 가능한 유형

  15. 15

    게으른 속성-유효한 변경 가능 사용?

  16. 16

    Javascript는 NaN 문자열 속성을 사용 가능한 숫자로 변환

  17. 17

    Javascript는 NaN 문자열 속성을 사용 가능한 숫자로 변환

  18. 18

    자동 완성이 편집 가능한 DataTable에있는 경우 탭 키가 작동하지 않습니다.

  19. 19

    속성 변경 사항을 포함하는 객체를 반환하는 ES6 함수가 있습니까?

  20. 20

    객체 속성 중 하나가 자바 스크립트에서 다른 객체로 확산되는 배열을 변경하는 방법

  21. 21

    동일한 ID가있는 경우 동일한 값을 가진 속성 추가

  22. 22

    동일한 값을 가진 Javascript 객체 속성은 그렇지 않은 경우 동일한 변경을 경험합니다 (스플 라이스)

  23. 23

    구성 가능한 StyleSheets 변경 관찰

  24. 24

    속성 이름이없는 숫자가있는 객체의 Node.js 배열

  25. 25

    바인딩 된 속성과 ListView의 직접적인 가시성 변경이있는 이상한 동작

  26. 26

    변경 가능한 참조를 자신으로 "이동"

  27. 27

    참조의 변경 가능성과 참조가 참조하는 값의 변경 가능성에 대한 약간의 혼동

  28. 28

    동일한 속성 _id 뒤에 다른 객체에 객체를 추가하는 자바 스크립트

  29. 29

    C ++에서 const 객체를 선언하려면 사용자 정의 기본 생성자가 필요합니다. 변경 가능한 멤버 변수가 있다면 왜 안됩니까?

뜨겁다태그

보관