C# 구문 질문
답변
맞지 않습니다. 첫 번째 행은 자동 구현 된 속성이고 두 번째 행은 공용 입력란입니다. 그것들은 바이너리 호환이 아니며 의미 적으로도 똑같은 것은 아닙니다. 일반적으로 속성은 융통성 및 데이터를 캡슐화하기 위해 을 사용할 수 있다는 점에서 선호됩니다 (종종 악용 되기는하지만).
그러나 컴파일러에서 생성되는 항목과 관련하여이 속성은 자동 백업 필드와 본질적으로 액세스 할 수있는 두 개의 메서드 ("getter"및 "setter")를 만듭니다. 필드는 바로 그것입니다 : 필드.
으로 인해 두 가지 예는 다르게 동작합니다 여러 가지 방법으로 사실 거기 이러한 차이 : 속성은 UI 응용 프로그램에서 데이터 바인딩을 지원합니다- 가.
- 필드는
Interlocked
메소드 중 하나와 같이ref
또는out
매개 변수로 액세스 할 수 있습니다. int
대신 가변 값 유형 (예 :Point
)이있는 경우이 속성을 사용하면 필드 복사본을 반환하므로 값을 직접 수정할 수 없습니다. 필드를 수정하려면 속성에서 반환 한 값을 로컬 변수에 할당하고 로컬을 수정 한 다음 다시 속성에 할당해야합니다.이 필드를 사용하면 실제로 값을 올바르게 수정할 수 있습니다. 보조 노트로
는 점 3 위의 많은 개발자들이 가변 값 유형을 설계 적에 대해 주장하는 데 사용하는 행위의 유형의 예입니다.
아니요 - 첫 번째 필드는 속성이고 두 번째 속성은 속성입니다. 가능하면 속성을 사용하여 나중에 확장 할 수 있습니다. 즉 설정 도구에서 일부 데이터 유효성 검사를 추가 할 수 있습니다. 속성은 배경 필드를 사용합니다. 자동 속성은이 속성을 숨 깁니다. 여기
속성 세터 내에서 데이터 유효성 검사의 예 : 대신 필드의 속성을 사용하는 주된 이유 중
한 응용 프로그램이나 라이브러리의 버전입니다 - 당신이 속성을 사용하는 경우 클래스 나 라이브러리 사용자가 코드를 다시 컴파일하지 않아도 속성 구현을 변경할 수 있으므로 클래스의 공용 인터페이스는 동일하게 유지됩니다. 반면에 필드에서 속성으로가는 것은 최악의 경우 최악의 경우 변경 될 수 있습니다 (Dao의 목록 참조, 필드를 ref로 사용). 적어도 재 컴파일이 필요합니다.
아니요, 이들은 동일하지 않습니다.
첫 번째 속성은 getter 및 setter 메서드와 함께 다른 백업 변수가 만들어지는 속성입니다. 이들은 보이지 않을 것입니다. 이 메서드는 getter 및 setter 클래스의 기능을 쉽게 변경할 수 있기 때문에 사용해야합니다. Visual Studio에서 필드를 속성으로 변환하는 것은 매우 간단하기 때문에 쉽게 사용해야합니다.
둘째 매개 변수는 public 일뿐입니다. 모두들 캡슐화를 깨기 때문에 나쁜 생각입니다.
아니요, 외부 코드와 동일하게 작동하지 않는 것 같습니다. 참조로 속성을 전달하거나 바인딩하십시오 ... –
Ah thanks. 나는 반례문을 생각하려고 애썼고, 실패한 후에야 그것을 게시했다. 나는 그것을 제거 할 것이다. – Tesserex
다른 위치의 실제적인 예제를 제공하기 위해 두 번째 버전은 컨트롤에 직렬화되거나 데이터 바인딩되지 않지만 첫 번째 버전은 컨트롤이 될 수 있습니다. This bit me on the ass before.
첫 번째 요소는 자동 속성이고 두 번째 요소는 "대문자"멤버 변수입니다. 캡슐화는 첫 번째를 선호합니다. 첫 번째 경우에는 설정 및 가져 오기에 대한 코드 포인트가 있지만 비어 있습니다.
- 1. C++ 구문 질문
- 2. C# 샘플 구문 질문
- 3. C# 문자열 - 간단한 구문 질문
- 4. 데이터 구문 분석 질문 C#
- 5. 기본 목표 C 구문 질문
- 6. 구문 질문
- 7. Java 구문 질문
- 8. C# XML 스키마 (SimpleType) 구문 질문
- 9. newbie objective c 포인터 질문 "*"구문
- 10. C++ 구문 질문 : if var! = type int
- 11. 아이폰 SDK/목표 C 구문 질문 모든
- 12. 은 C++을 친구 구문/의미 질문
- 13. 구문 분석과 대답 질문
- 14. 몽고 이드 구문 질문
- 15. PHP 구문 분석 질문
- 16. xHTML 구문 질문
- 17. 자바 구문 질문
- 18. jQuery $ (this) 구문 질문
- 19. F # 구문 질문
- 20. PHP 구문 질문
- 21. 간단한 PHP 구문 질문
- 22. JavaScript RegExp 구문 질문
- 23. 자바 구문 질문
- 24. VC2010 초급 질문 : 구문 "^"
- 25. Kohana ORM 구문 질문
- 26. 기본 라켓 구문 질문
- 27. 몽고이 쿼리 구문 질문
- 28. ActiveRecord 조건 구문 질문
- 29. PHP 구문 분석 질문
- 30. PHP heredoc 구문 질문
아니요, 첫 번째 속성은 속성이고 두 번째 속성은 공용 인스턴스 변수입니다. –