CS/Effective C# 4

string.Format()을 보간 문자열로 대체하라

개발을 하다 보면 정말 많이 사용하는 것이 바로 문자열입니다. 보통 문자열을 표현할 때에는 정말 순수하게 문자열만 표현할 수도 있지만, 간혹 숫자와 같이 작성하거나 다른 특수 기호와 함께 사용되어야 할 때에도 많이 존재하는데요. C#에서는 조금 더 편리한 기능을 제공하는 보간 문자열에 대해서 알아보고자 합니다. 보간 문자열? 이름이 되게 어색하게 들릴 수 있지만 C# 6.0에 도입된 기능입니다. 제일 좋은 것은 바로 코드 가독성이 대폭 향상됩니다. 코드 가독성이 향상되었다는 것은 미연에 개발자의 실수를 줄이고 조금 더 복잡한 문제에 집중할 수 있게 된다는 뜻도 있습니다. 기존에 널리 사용되었던 string.Format() 또한 문자열 변환 과정을 잘 수행하지만, 생성된 문자열을 직접 출력해보고 올바른 형..

CS/Effective C# 2023.05.06

캐스트보다는 is, as가 좋다

캐스트의 경우에는 스타크래프트로 따지면, 드랍쉽에는 여러 유닛을 태울 수 있는데요. 여러 유닛의 각 특징들의 메서드(행동)를 가져오려고 할 때 그 유닛으로 캐스팅을 해야 그 유닛의 고유의 능력이나 행동을 가져올 수 있습니다. 그럴 때 캐스트가 필요하게 되는데요. 캐스트에 대해서 어떻게 하면 더 효율적으로 사용할 수 있는지에 대해서 알아봅시다. C#은 정적 타이핑을 수행하는 언어입니다. 그래서 보통 판단은 정적으로 하려고 하는데요. 위와 같은 상황에서 런타임에서(게임 실행 중)에 반드시 타입을 확인해야할 필요가 있는 경우가 있습니다. C#에서는 2가지 캐스트를 지원합니다. 1. as 연산자를 사용하는 방법 (더 방어적으로 사용하는 is 연산자로 형변환이 가능한지를 확인한 후에 실제 형변환 진행) 2. 일반..

CS/Effective C# 2023.05.06

const보다는 readonly가 좋다.

간혹 성능을 위해서 상수형을 작성하게 될 때 엄청난 고민을 하게 됩니다. 이때 누구는 const를 쓰고, 또 누구는 readonly를 쓰고 있습니다. 어떨 때 이걸 쓰고, 또 어떨 때 이걸 쓰는지 코드를 작성하다 보면 고민이 깊어져 2시간가량을 먹었던 기억이 있습니다. 그 답 오늘 해결해봅시다! C#은 컴파일타임 상수와 런타임 상수 2 유형의 상수를 가집니다. 컴파일타임 상수는 const를 의미하고, 런타임 상수는 readonly를 의미합니다. // 컴파일타임 상수 public cosnt int Millennium = 2000; // 런타임 상수 public static readonly int ThisYear = 2004; 컴파일타임 상수가 약간 더 빠르긴 하지만, 런타임 상수에 비해서 유연성이 떨어집니..

CS/Effective C# 2023.04.23

지역변수는 var를 사용하는 것이 낫다.

최근에 인턴으로 들어오신 팀원이 지난 주에 직군 면접을 봤었습니다. 직군 면접에 대해서 이것저것 얘기하다 보니 생각난 것이 있습니다. 바로 Effective C#인데요. 사수님께서 입사 후 제일 먼저 사주신 책입니다. 예전에 직군 면접 보기 전에 한번 정독했던 기억도 나고, 블로그에 정리하면서 내실을 다지는 것이 어떨까하여 시작합니다. 가장 흥미로우면서도 편리한 var 에 대해서 설명하는 단원이네요. 득 보다 실이 많다. 정확한 반환 타입을 알지 못한 채 올바르지 않은 타입을 명시적으로 지정하게 되면 오히려 손해라는 뜻입니다. 극단적으로 값 타입을 object 형으로 받아버리는 것도 마찬가지죠. 버그가 발생하여 유지보수를 하려고 할 때에 많은 코드 분석을 하게 됩니다. 이럴 때 너무 긴 코드는 오히려 집..

CS/Effective C# 2023.04.23