본문 바로가기

Udemy 강의 후기/Udemy - POCU C# 프로그래밍 기초

C# Array와 List의 차이, Decimal, StringBuilder

Array와 ArrayList, List

C#은 특이한게, 배열(Array)이 있는데 크기를 지정할수 있다.

 

string[] list = new string[3]; (배열의 크기가 3)

 

크기가 고정되어있다보니 퍼포먼스와 메모리 관련 이점이 있고, 다차원 배열(바둑판같은)을 생성할수 있다는

장점이 있다.

 

그에 반해, 이 고정된 크기는 변형이 불가능하다 보니, 이 단점을 극복하기 위해  ArrayList란게 나왔다.

 

다른 타입의 데이터도 저장이 가능하며, 크기도 자유롭게 조절이 가능하다.

(다른 타입의 데이터를 다루는 것을 boxed, unboxed라고 표현, 성능이슈가 당연히 발생)

 

이 단점을 또 극복하기 위해 나온것이 List인데,

box와 관련된 성능이슈를 극복하기 위해 타입 추론을 도입했다. 즉, 같은 타입만 저장이 가능하기 때문에 

ArrayList를 조금 더 안전하게 사용하기 위해 나온것이 List라고 보면 되겠다.

 

출처 : https://stackoverflow.com/questions/32020000/what-is-the-difference-between-an-array-arraylist-and-a-list/32020072

 

What is the difference between an Array, ArrayList and a List?

I am wondering what the exact difference is between a Array, ArrayList and a List (as they all have similar concepts) and where you would use one over the other. Example: Array For the Array we ca...

stackoverflow.com

 

Decimal 자료형

원 뜻은 '소수' 인데, float니 double이니 하는것들보다 이름값 하는 네이밍이다.

 

연산속도가 느린 대신, 훨씬 더 정확하게 연산결과를 표시할수 있기 때문에,

과학, 금융, 그래픽 분야에서 주로 사용된다.

 

부동소수점, 고정소수점 관련은 프로그래밍 수학 쪽에서 다시 제대로 다룰 기회가 있을것 같다.

 

C#에서 var란?

Javascript강의 듣다보면 꽤 높은확률로 'var' 는 쓰지 마라는 말을 많이 듣는다.

자스 개발자들의 공공의 적인 호이스팅 때문인데 (나도 호되게 당함)

C#에서는 지역변수 선언시 var를 사용하면 코드 가독성과 간결성을 추구할수 있어서

꽤 선호받는것 같다.

 

다만, 타입이 명시적으로 추론될만한 곳에서 var를 사용해야 하며, 숫자형 관련(int나 float)해서는 캐스팅 관련 이슈가 있기 때문에, 명확히 선언해주는것이 훨씬 안전하다는 점은 있다.