http://msdn.microsoft.com/en-US/library/0fss9skc(v=vs.120).aspx에 따르면 속성은 배열을 반환하지 않습니다. 이것은 generics와 어떻게 상호 작용합니까? 배열이 제네릭에 대해 허용되는 유형 인 경우 T Value { get; set; }
대신 T GetValue()
및 SetValue(T value)
과 같은 함수를 만들어야합니까?배열을 반환 할 수있는 일반 속성이 있습니까?
6
A
답변
10
이 규칙은 절대적인 것이 아닙니다. 그것이 어디서 왔는지 이해 : 배열을 반환하는 속성은 호출자가 사본을 변경하고 객체 내부 상태에 도달 할 수 없도록 실제로 사본을 만들어야합니다.
일반적인 코드를 다루는 경우 구체적인 코드 T
에 대해 알지 못합니다. 그것은 그것의 내부 구조에 의존하지 않습니다. 따라서이 규칙을 지키는 것은 도움이되지 않습니다. 배열을 제네릭 코드 안팎으로 전달하는 것은 전적으로 허용됩니다. 예 : A List<int[]>
.
그 외에도 Servy는 값을 가져 오거나 설정하는 메서드를 만드는 것이 규칙에 대한 추론에서 설명한 효과를 완화하기 위해 실제로 어떤 작업도 수행하지 않는다고 올바르게 지적합니다.
관련 문제
- 1. 배열을 매핑하고 Python에서 배열을 반환 할 수있는 방법이 있습니까?
- 2. C# 4에 일반 속성이 있습니까?
- 3. 일반 methodInfo를 호출 할 수있는 방법이 있습니까?
- 4. mongodb의 $ 프로젝트가 배열을 반환 할 가능성이 있습니까?
- 5. NSFetchRequest - 속성 배열을 반환 할 수 있습니까?
- 6. 값 및 참조 유형 객체를 반환 할 수있는 일반 함수
- 7. 배열을 필터링 할 수있는 쿼리 언어가 있습니까?
- 8. ApplyCurrentValues에 의해 특정 속성이 적용되지 않도록 할 수있는 방법이 있습니까?
- 9. 메서드에서 익명 형식을 반환 할 수있는 방법이 있습니까?
- 10. FileStream을 파일에 대한 일반 인터페이스로 반환 할 수 있습니까?
- 11. 매개 변수와 반환 유형이 다른 속성이 있습니까?
- 12. 일반 클래스 유형 반환
- 13. j2me - 목록에 항목을 식별하는 '키'를 추적 할 수있는 속성이 있습니까?
- 14. 실패한 매퍼 임계 값을 정의 할 수있는 속성이 있습니까
- 15. c 배열에 다른 배열을 보유 할 수있는 방법이 있습니까?
- 16. 개체가 아닌 개체 인터페이스의 배열을 반환 할 수 있습니까?
- 17. Go : 일반 JSON 배열을 구조체로 모델링 할 수 있습니까?
- 18. 일반 반환 형식 - Java
- 19. 일반 목록 배열을 GridView에 바인딩
- 20. 버튼에 문자열을 저장할 수있는 속성이 있습니까?
- 21. Java 일반 반환 형식
- 22. 메서드에서 일반 반환
- 23. 부분보기에서 일반 HTML 반환
- 24. 일반 세트 반환 함수
- 25. JMock 일반 반환 형식
- 26. 배열 일반 배열을 캐스팅
- 27. 일반 클래스 배열을 만들 수 있습니까?
- 28. 일반 배열을 특정 유형으로 변환
- 29. Codeigniter에서 여러 변수/배열을 반환 할 수 있습니까?
- 30. LINQ ToArray는이 예제에서 강력한 형식의 배열을 반환 할 수 있습니까?
얻을 수있는 방법을 만들기/정말 규칙에 대한 추론에 설명 된 효과를 완화하기 위해 아무것도하지 않는 값을 설정합니다. – Servy
이 문제에 대해서는 절대로 생각하지 않았습니다. 내부 컬렉션을 추가하거나 제거하지 않으려 고 할 때 항상 배열을 반환했습니다. 어쩌면 ReadOnlyCollection을 사용해야 할 것입니다. – TyCobb
@Servy : 사실이지만 대부분의 프로그래머는 루프에서 GetValueT() [x]와 같은 구문을 사용하기 전에 조금 생각합니다. – RobinHood70