목록분류 전체보기 (592)
KorSA
VS OverflowException 체크 설정이 되어 있을 때, unchecked 키워드를 쓰면 해당 코드는 OVerflowException 체크를 하지 않고 그냥 wrap(비트 절삭) 한다.
Visual Studio 설정을 변경하면 check 키워드 없이도 OverflowException 을 catch 할 수 있다. 만일 checked 나 VS 설정이 안되어있으면 그냥 상위 비트들을 버린 채로(값이 유실된 채로) 연산된다. VS 설정 경로 : Build > Advanced > Advanced Build Settings > Check For Arithmetic overflow / underflow
explicit convert -> 소수점 아래 버림 System.Convert -> 반올림 또는 반내림 -> 만일 딱 중간이면, 가까운 짝수를 리턴 ex) Convert.ToInt32(8.5f) -> 8 Convert.ToInt32(9.5f) ->10
a % b 에서 a나 b가 음수이면, 결과값은 a의 부호와 동일한 부호를 가진다. ex) a > 0 이면 결과값은 1, a < 0 이면 결과값은 -1
소수점이 있는 수들은 기본적으로 double 이므로 float 형 변수에 소수점이 있는 수들을 대입하려면 f suffix가 필요하다. 없으면 dobule -> float 묵시적 변환을 시도함으로써 compile error 가 발생한다
WPF는 Flow-Based Layout 이다.
WPF는 Bitmap 대신 Vector를 쓴다. 즉, 모든 픽셀을 찍는 게 아니라 graphical primitives (lines, shapes, polygons) 로 그린다. 그래서 output 장치의 pixel density에 관계없이 drawing이 가능하다.
WPF앱은 그래픽 카드 성능을 살펴보고 이에 따라 Rendering Tier를 매긴다. Rendering Tier에 따라 하드웨어 가속을 할지 말지 결정한다.
하드웨어 가속 ? -> Graphics Layer 단위로 렌더링된 이미지를 GPU를 이용해 한 장의 이미지로 합성(Composition)해서 화면에 출력하는 기술. (웹 브라우저는 HTML -> DOM 트리 -> Render Object (화면에 표현되는 요소) -> Render Layer -> Graphics Layer (GPU에 업로드되는 요소) 순으로 소스를 변환한 후 화면에 뿌려줌) CPU vs GPU ? CPU -> 직렬(순차) 처리 GPU -> 병렬 처리 참고 블로그 -> https://light-tree.tistory.com/25
WinForms -> 버튼 하나하나, label 하나하나가 모두 Windows 운영체제에서 개별적으로 관리하는 Window 객체 WPF -> 최상위 창 하나만 Windows 운영체제에서 관리하는 Window 객체. 버튼이나 label은 Windows 운영체제에서 모름. WPF 앱이 내부에서 자체적으로 그린 것. 사용자들의 눈높이가 올라감에 따라 기본 기능만 지원되던 WIndows Form은 개발이 어려워짐. 그래서 Win32 API에 대한 의존성을 획기적으로 줄인 (자체 Drawing 이니까) WPF가 탄생하게 됨.