스택큐힙리스트

C# 자동 속성에 초기 값을 할당하는 가장 좋은 방법은 무엇인가요? 본문

카테고리 없음

C# 자동 속성에 초기 값을 할당하는 가장 좋은 방법은 무엇인가요?

스택큐힙리스트 2023. 3. 22. 10:43
반응형

C# 자동 속성에 초기값을 설정하는 방법은 무엇인가요?

나는 생성자를 사용하거나 예전 구문으로 돌아간다.

생성자 사용하기:

class Person

{

public Person()

{

Name = Initial Name;

}

public string Name { get; set; }

}

초기 값이 포함된 일반적인 속성 구문을 사용합니다.

private string name = Initial Name;

public string Name

{

get

{

return name;

}

set

{

name = value;

}

}

더 나은 방법이 있나요?

답변 1

C# 5 이전에는 자동 구현된 속성에 초기 값을 지정하려면 생성자에서 수행해야합니다.

C# 6.0 때문에, 초기 값을 in-line으로 지정할 수 있습니다. 구문은 다음과 같습니다:

public int X { get; set; } = x; // C# 6 or higher

DefaultValueAttribute은 디자이너(VS 디자이너나 다른 고객)가 기본값을 지정하기 위해 사용되는 것입니다. 초기 값이 기본값이더라도 (설계된 객체에서) 초기 값으로 사용되는 것이 아닙니다.

컴파일 시 DefaultValueAttribute는 생성된 IL에 영향을 미치지 않으며 해당 값을 초기화하려는 데 사용되지 않습니다 ( DefaultValue attribute is not working with my Auto Property 참조).

IL에 영향을 미치는 속성의 예시는 ThreadStaticAttribute , CallerMemberNameAttribute , ... 입니다.

답변 2

C# 자동 속성에 초기 값 설정하는 가장 좋은 방법은 무엇일까요?

C#은 개발자가 클래스를 만들 때 자동 속성(auto-property)을 사용할 수 있도록 지원합니다. 이 기능은 복잡한 속성을 쉽게 만들 수 있도록 해줍니다.

하지만 자동 속성을 사용할 때, 개발자는 필드를 직접 초기화하지 않으므로 속성에 기본값을 할당해주어야 합니다. 특히 동적으로 생성하는 객체나, 클래스 초기화 시 필요한 경우, 속성의 초기값을 설정하는 것이 중요합니다.

그러나 C#에서 자동 속성에 초기값을 할당하는 방법은 다양합니다. 일반적으로는 생성자를 이용해 초기값을 설정하거나, 람다 식을 이용하는 경우가 많습니다.

생성자를 이용한 초기화 방법은 가장 기본적인 방법입니다. 생성자를 이용해 속성에 초기값을 할당할 수 있습니다.

```

public class MyClass

{

public int MyProperty { get; set; }

public MyClass()

{

MyProperty = 10;

}

}

```

다음은 람다 식을 사용한 방법입니다. 람다를 이용해서 속성에 할당할 초기값을 지정할 수 있습니다. 이 방법은 가독성이 좋고 간결한 코드를 만들 수 있습니다.

```

public class MyClass

{

public int MyProperty { get; set; } = () => 10;

}

```

이처럼 C#에서 자동 속성에 초기값을 할당하는 방법은 다양합니다. 생성자나 람다식을 이용해 초기값을 할당하면 됩니다. 초기값을 설정할 때는 가독성과 코드의 간결성을 고려하여 적절한 방법을 선택하는 것이 좋습니다.

또한 초기값을 바로 속성에 할당해도 되지만, 초기화 로직이 복잡해지거나 유지보수성을 고려하면 생성자나 람다식을 사용하는 것이 좋을 것입니다.

따라서 개발자는 속성 간의 의존성과 초기화 비용 등 여러 요소를 고려하여 적절한 초기화 방법을 선택해야 합니다. 이를 통해 C# 자동 속성을 더욱 효율적으로 사용할 수 있습니다.

반응형
Comments