c# 코드 개선해 보기



적용 주제
  • string.empty 대 큰 따옴표 ( "")
  • string.Equals vs. ==
  • string.Intern
  • Strings vs. StringBuilder
  • StringBuilder를 선택해야하는 경우
  • String concatenation vs. string.Format
  • Advantages of string.Format
  • 대소 문자를 구분하지 않는 비교
  • Out vs. return
  • 불필요한 공백 행 제거
  • Linq - First vs. FirstOrDefault
  • FirstOrDefault를 사용하는 경우
  • Single vs. SingleOrDefault
  • Performance: FirstOrDefault vs. SingleOrDefault
  • Disposable.Dispose vs. Using Block


string.empty 대 큰 따옴표 ( "")
  • 문자열 .empty는 큰 따옴표 ( "")보다 읽기 쉽도록 개선 합니다.



string.Equals 대 ==

string.Equals와 "=="는 기본 데이터 유형 또는 값 유형 (int, double, char, bool)에 대해 동일합니다 (내용 기준 비교이므로).

  • "=="객체 참조를 비교합니다. 컴파일시 호출함;
  • 'string.Equals'는 값을 비교합니다. 런타임에 호출함;
string.Equals는 == 보다 가독성을 향상시킵니다. 

 문자열 .Internet



문자열의 동일한 값을 반복해서 복사해야한다면 string.Internet을 사용하여 성능을 향상시키는 것이 좋습니다.

문자열 대 StringBuilder

  • 불변의 의미는 다음과 같습니다. 데이터 값을 변경할 수 없습니다.

변수의 값은 변경 될 수 있지만 원래의 변경 불가능한 값은 무시되고 새 데이터 값이 메모리에 작성됩니다.

  • 문자열은 변경할 수 없으며 StringBuilder는 변경할 수 있습니다.
  • 대량의 문자열 조작이 필요한 경우 StringBuilder를 사용하십시오.
  • 문자열은 변경할 수 없습니다. 따라서 문자열을 변경하면 매번 새로운 인스턴스가 메모리에 만들어집니다.

StringBuilder를 선택해야하는 경우

세 번 이상의 문자열 조작이 필요하면 StringBuilder를 사용하십시오.

문자열 연결 대 string.Format

  • AppendFormat을 StringBuilder에 사용하십시오.
  • 문자열에 String.format을 사용하십시오.

장점

  • 가독성 향상.
  • 성능을 향상시킵니다.
  • 수정하기 쉽습니다.




대 / 소문자 비 구분 비교 Out 대 return return 



메소드를 사용하는 방법이 out보다 빠릅니다. 

불필요한 빈 줄 제거



불필요한 빈 줄과 공백을 제거하는 더 나은합니다.
  • 코드 가독성이 향상됩니다.

Linq - First vs. FirstOrDefault 



First

결과에 하나 이상의 요소가 있지만, 첫 번째 요소가 필요하다면 empty가 좋지 않습니다. 리스트가 empty 경우는 예외가 throw 됩니다. 

FirstOrDefault

결과에 하나 이상의 요소가 있지만, 첫 번째 요소가 필요하거나 empty 가 있으면 좋습니다. 단 source-list가 null의 경우, 예외를 throw합니다.

FirstOrDefault를 사용하는 경우

  • 하나 이상의 결과가 예상되는 경우 첫 번째 레코드가 필요합니다.
  • 또는 결과가 없는 경우; 하지만 당신은 기본값을 원한다.
  • 결과가 비어 있으면 예외는 없습니다.
단일 대 SingleOrDefault
  • single - 요소가 1 개만 필요하면 (1 또는 0보다 작음).
  • SingleOrDefault - 요소가 1 개 또는 0 개 (1 개 이하)이면됩니다.

성능 - FirstOrDefault 대 SingleOrDefault

FirstOrDefault는 SingleOrDefault보다 빠릅니다.

IDisposable.Dispose 대 블록 사용

'블록 사용'을 사용하는 것이 더 좋습니다. 예외 또는 return 문이있을 수 있지만 dispose를 호출합니다.

Magic Value



코드 블록에서 직접 마술 값 (하드 코딩 된 문자열, 숫자)을 사용하지 마십시오. 모든 하드 코딩 된 값을 하나의 개별 클래스 또는 적어도 클래스 맨 위에 배치하십시오. 코드 관리 기능이 향상 될 것입니다.


TAGS.

Comments 0