[5분만에 책 한권 읽기] C# 코딩의 기술 기본편 - 가와마타 아키라

|


C# 코딩의 기술 - 기본편
국내도서
저자 : 가와마타 아키라 / 김완섭역
출판 : 길벗 2015.09.23
상세보기





C# 코딩의 기술 기본편 - 가와마타 아키라




+C#의 입문자들이 읽기에 좋은 책이다. 기존의 C#의 경력자들도 읽으면 애매했던 부분들을 잘 비교 정리해줘서 한번 쯤 읽어두면 좋은거 같다. 악마와 천사의 캐릭터가 각각 하지 말아야하는 방법과 최선의 방법을 제시해서 물 흐르듯이 읽기 좋다. 보통 악마가 하는 말들은 권장할만한 것이 아니거나 하지 말아야 할 것 들이지만 개발을 하다보면 자주 그런 유혹에 넘어 갈 때가 있다. 



[핵심적인 내용들]


1.C#에서의 var를 기피하는 이유가 '형을 명시하지 않으면 변수는 어떤 것이든 저장할 수 있는 마술 상자다'라는 생각때문이다. 하지만 C#에서 var는 마술상자가 아니다.  '형을 명시하지 않지만 추론으로 확정한다. 변수에는 지정된 형만 저장할 수 있다'.  var list = new List<string>(); 이렇게 되면 list는 List<string>형으로 지정이된다. 이렇게 사용을 하면 코드자체를 줄일 수가 있기 때문에 가독성이 좋다. 위에처럼 List<string>형태면 비교적 간단한 타입으로 효과는 크지 않지만 긴 네임스페이스를 사용하는 타입에서는 가독성이 좋아진다.


2.Task 클래스?


3.변수에 람다식을 사용하면 캡처돼서 수명이 연장된다. 람다식에서 배열을 사용할 때 기본자료형을 사용하지 않고 열거 객체를 사용한다. 열거객체는 데이터 자체를 저장하는 게 아니라 필요한 데이터를 반복해서 가져오는 방법을 알고 있는것이다.


  -기존 :  int[] array = Enumerable.Range(0,Max).ToArray(); 

  -개선 :  IEnumerable<int> enumAll = Enumerable.Range(0,max)



4.배열의 각각의 값을 형변환을 해서 처리할 필요가 있을때 강제형변환을 사용하지 않고 LINQ의 OfType메서드를 이용해서 지정된 형의 데이터만 추출해서 형변환 없이 사용이 가능하다.


 -기존 :  foreach(var item in array); if(item is TargetType); ((TargetType)item).Speak();

 -개선 : foreach(var item in array.OfType<TargetType>);item.speak();



5.어떠한 경우에도 파일을 닫아야 한다면 IDisposable 인터페이스와 using문을 사용해서 IDisposable 인터페이스를 구현해서 using구문과 함께 사용하면 어디서 예외가 발생하든지 close()를 실행할 수 있다.


6.Hashtable 클래스는 호환을 위해서 남아있긴 하지만 오래된 클래스이다. C#의 API 세트에 포함되어 있지 않다. 


7.시리얼라이즈 : 불특정 다수의 시스템에 배포하지 않아도 되고 효울이 중요하다면 JSON을 사용하면 데이터 크기도 줄어들고 좋다.


8.예외는 무거운 처리라서 발생하지 않도록 하는것이 기본이다.


9.불변클래스는 프로그램의 복잡성을 줄여줄 수 있기 때문에 좋다.


10.VS에서 Productivity Power Tools를 설치하면 코드작성에 편리한 기능을 사용할 수 있다.

And