>백엔드 개발 >C++ >여러 생성자에서 읽기 전용 필드를 초기화할 때 코드 중복을 방지하려면 어떻게 해야 합니까?

여러 생성자에서 읽기 전용 필드를 초기화할 때 코드 중복을 방지하려면 어떻게 해야 합니까?

DDD
DDD원래의
2025-01-12 11:46:41620검색

How Can I Avoid Code Duplication When Initializing Readonly Fields in Multiple Constructors?

생성자 내에서 다른 생성자 호출

클래스에서 생성자는 객체가 생성될 때 필드를 초기화하는 데 사용됩니다. 경우에 따라 여러 생성자가 읽기 전용 필드에 값을 제공할 수도 있습니다. 다음 클래스를 고려해보세요:

<code class="language-c#">public class Sample
{
    public Sample(string theIntAsString)
    {
        int i = int.Parse(theIntAsString);
        _intField = i;
    }

    public Sample(int theInt) => _intField = theInt;
    public int IntProperty => _intField;

    private readonly int _intField;
}</code>

여기에는 두 개의 생성자가 있습니다. 그러나 읽기 전용 필드는 생성자에서 초기화해야 하므로 필드 설정 코드 중복을 피하려는 경우 문제가 발생합니다.

다행히도 해결책이 있습니다. 생성자 체이닝을 사용하는 것입니다. 문자열 인수 생성자에 다음 줄을 추가합니다.

<code class="language-c#">public Sample(string str) : this(int.Parse(str)) { }</code>

문자열 매개변수 생성자에서 정수 매개변수 생성자를 호출할 수 있습니다. 이는 필드 초기화를 기존 코드에 위임하므로 중복이 필요하지 않습니다.

위 내용은 여러 생성자에서 읽기 전용 필드를 초기화할 때 코드 중복을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.