본문 바로가기

Study Memos/C# 2000 Things

(16)
#59.Unchecked VS OverflowException 체크 설정이 되어 있을 때, unchecked 키워드를 쓰면 해당 코드는 OVerflowException 체크를 하지 않고 그냥 wrap(비트 절삭) 한다.
#58. OverflowException Visual Studio 설정을 변경하면 check 키워드 없이도 OverflowException 을 catch 할 수 있다. 만일 checked 나 VS 설정이 안되어있으면 그냥 상위 비트들을 버린 채로(값이 유실된 채로) 연산된다. VS 설정 경로 : Build > Advanced > Advanced Build Settings > Check For Arithmetic overflow / underflow
#56. Convert explicit convert -> 소수점 아래 버림 System.Convert -> 반올림 또는 반내림 -> 만일 딱 중간이면, 가까운 짝수를 리턴 ex) Convert.ToInt32(8.5f) -> 8 Convert.ToInt32(9.5f) ->10
#53. Modulo a % b 에서 a나 b가 음수이면, 결과값은 a의 부호와 동일한 부호를 가진다. ex) a > 0 이면 결과값은 1, a < 0 이면 결과값은 -1
#51. float 소수점이 있는 수들은 기본적으로 double 이므로 float 형 변수에 소수점이 있는 수들을 대입하려면 f suffix가 필요하다. 없으면 dobule -> float 묵시적 변환을 시도함으로써 compile error 가 발생한다
#48. checked check 키워드 => casting 할 때 결과값이 범위를 벗어나면 Exception을 throw 해준다.
#38. C# Type 의 종류 C#에서 type은 크게 3 가지로 나뉜다. 1. built-in (Common Type System 의 일부) 2. custom type(.NET 프레임워크에 정의되어 있음) 3. user-defined type
#37-2. Common Type System (CTS) C# 공부를 하던 중 .NET 프레임워크를 구성하는 CTS (Common Type System) 에 대해 알게 되었다. 대충 살펴보니 C#의 keyword 등을 설계한 아주 fundamental한 개념인 듯 하다. C#, .NET을 잘하려면 좀 더 깊이 공부할 필요가 있어보인다.