몇 가지 기본적인 질문이 있습니다. 코드에서 아래와 같은 많은 것을 볼 수 있습니다.
public class User
{
private IList<Person> _person;
public User()
{
_person = new IList<Person>();
}
public IList<Person> personList
{
get { return _person; }
(protected) set { _person = value; }
}
}
ctor에서 변수를 인스턴스화하는 이점은 무엇입니까? 선언 할 때 인스턴스화하지 않는 이유는 무엇입니까? 어쨌든 인스턴스를 만들 때 변수를 인스턴스화하고 있으므로 선언 중에 설정하지 않는 이유는 무엇입니까?
변수를 private으로 설정 한 다음 공용 속성이 액세스하도록 허용하는 이유는 무엇입니까? (필자는 protected를 대괄호로 묶었 고, 이것의 장점을 볼 수 있습니다-하위 클래스 또는 그 자체 만 해당 속성을 설정할 수 있음),하지만 protected 또는 private 집합이 없다고 가정합니다. 변수를 공개로 설정하면 더 좋지 않을까요?
ctor에서 변수를 인스턴스화하는 이점은 무엇입니까? 선언 할 때 인스턴스화하지 않는 이유는 무엇입니까? 어쨌든 인스턴스를 만들 때 변수를 인스턴스화하고 있으므로 선언 중에 설정하지 않는 이유는 무엇입니까?
동일합니다. 클래스 수준 변수를 선언하고 동일한 줄에서 인스턴스화하면 생성자 (일반 또는 정적)에 인라인됩니다.
이에 대한 자세한 내용 은 생성자 또는 선언에서 클래스 필드 초기화 를 참조하십시오 .
변수를 private으로 설정 한 다음 공용 속성이 액세스하도록 허용하는 이유는 무엇입니까? (필자는 protected를 대괄호로 묶었 고, 이것의 장점을 볼 수 있습니다-하위 클래스 또는 그 자체 만 해당 속성을 설정할 수 있음),하지만 protected 또는 private 집합이 없다고 가정합니다. 변수를 공개로 설정하면 더 좋지 않을까요?
메서드 호출로 변환되는 속성을 사용하면 변수를 설정하기 전에 더 많은 작업을 수행 할 수 있습니다. 이에 대한 간단한 예는 입력 값이 예상 한 값인지 확인하는 것입니다.
더 많은 차이점은 공용 필드와 자동 속성을 참조하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다