[Effective C#] 문화권별로 다른 문자열을 생성하려면 FormattableString을 사용하라
·
독서/Effective C#
01. FormattableString.. 이게 도대체 뭐야?나는 글을 포스팅하면 읽은 내용을 바로 올리는 것보다는 천천히 올리는 것을 선호한다. 지금 글을 작성하는 시점에서 Effective C# 책의 Item#12까지 읽었는데 가장 애매한 부분이 지금 작성하는 Item#5였다. FormattableString? 이게 도대체 뭔데.. 문화권별로 다른 문자열을 생성해주는 것임은 알겠는데 사용 경험이 없으니까.. Effective C# 책에 나올 내용인가 싶었다. 실제로 다른 분들의 블로그에서 FormattableString의 사용 경험이 있는지를 검색하기 위해서 다양한 검색어로 서칭해봤다. 대부분이 나와 같이 공부한 Effective C# 책 내용을 작성하기 위해서 올린 것이 대부분이라서 찾기 어려웠다...
[Effective C#] string.Format()을 보간 문자열로 대체하라
·
독서/Effective C#
01. String.Format() ?C#을 사용하는 개발자들 중에서 String.Format()을 사용해서 문자열을 표현하는 사람들을 본 적이 없는 것 같다. 내가 C#에 대해서 처음 입문 했을 때가 2018년이었는데 그때도 본 적은 없는 것 같다.  String.Format().. 그러니까 포맷 문자열에 대한 예시는 다음과 같다. C언어에서 출력하는 것과 비슷하다.int age = 21;string name = "김민수";// 1번Console.WriteLine("이름: {0}, 나이: {1}", name, age);// 2번string result = string.Format("이름: {0}, 나이: {1}", name, age);Console.WriteLine(result); 02. 문자열 보간(..
[Effective C#] 캐스트보다는 is, as가 좋다
·
독서/Effective C#
01. Cast ?캐스트(Cast)는 데이터 타입을 다른 데이터 타입으로 변경하는 과정을 의미한다. 형변환이라고도 한다.02. 명시적 캐스팅(Explicit Casting)일반적으로 프로그래밍을 처음 배울 때 사용되는 캐스팅은 다음과 같다.int num = 54;object numObject = (object)num;  위 코드는 int 타입의 변수를 object 타입으로 캐스팅한다. 위와 같이 캐스팅하는 방식을 명시적 캐스팅이라고 하며 컴파일에서 과정을 처리하기 때문에 올바르지 않은 캐스팅을 진행할 경우 에러 코드를 만날 수 있다. 03. is와 as 키워드를 통한 캐스팅, 안전한 캐스팅(Safe Casting)C#에서 제공하는 is와 as 키워드를 통해서도 캐스팅을 진행할 수 있다. is 키워드는 객..
[Effective C#] const보다는 readonly가 좋다.
·
독서/Effective C#
01. 컴파일 상수와 런타임 상수C#에서 사용하는 상수라고 한다면, const 키워드와 readonly 키워드가 있다. 두 키워드의 차이점은 어느 시점에서 상수화가 진행되는지에 따라서 달라진다. 먼저 const 키워드는 컴파일 상수고 readonly 키워드는 런타임 상수다. 컴파일 상수는 런타임 상수에 비해서 빠른 편이지만, 유연성은 떨어지는 편이다. 그래서 변하지 않는 값임을 확신할 수 있다면 컴파일 상수로 작성하는 것이 좋으며, 변하는 값일 수 도 있다면 런타임 상수를 사용하는 것이 좋다. 이런 경우가 언제 있냐면, DB를 통해서 데이터를 수신받아서 상수화를 진행할 때 차이가 있다. 현재 라이브 중인 프로젝트의 이름이 'Unity'라면 정말 특수한 상황이 아닌 이상, 프로젝트의 이름은 불변할 것이다...
[Effective C#] 지역변수를 선언할 때는 var를 사용하는 것이 낫다
·
독서/Effective C#
01. var 키워드의 장점01. A. 반환 타입 유추개발하고 있는 프로젝트가 본인이 100% 기여한 것이라면 메서드의 반환 타입에 대해서 쉽게 살펴보거나 알 수 있는 내용들이 많다. 하지만 무심코 넘어갈 수 있는 부분이 있다. 아래의 코드를 보자.public abstract class Animal { ...}public class Dog : Aniaml { public Dog Getdog() { return new Dog(); }}...public class Program { private static void Main() { Animal animal = new Animal(); Dog dog = new Dog(); animal = dog.Get..
대학생 연합 게임 제작 동아리 브릿지(BRIDGE) 12기 후기
·
활동/게임제작동아리 브릿지
얼마전에 2024년 2학기 브릿지 신입 회원 모집이 시작됐다. 올해 초에 1학기 신입 회원 모집에 지원한 기억이 엊그제 같은데, 벌써 2학기 신입 회원을 모집한다는 것이 믿겨지지 않는다. 시간이 참 빠르다. 나는 게임 프로그래밍을 공부하면서 제법 많은 횟수의 게임 프로젝트를 개발했는데 장기 프로젝트 경험은 많지 않았다. 대학교를 올해 초에 졸업하게 되면서, 취업 전 까지 장기 프로젝트를 진행하고 싶다는 생각을 가졌다. 1인 개발도 관심이 있었으나 다른 사람들과 함께 프로젝트를 진행하고 싶었다. 우연히 지인과 식사자리에서 고민을 나눌 수 있었다. 그리고, 그 덕분에 브릿지를 알게되었다. 그 당시에 2024년도 1학기 신입 부원을 모집하고 있었으므로, 마감일 전까지 충분히 정보를 찾아서 고민하기로 했다. 여..