✍ 기본 요소 WPF에서는 UIElement, ContentElement, FrameworkElement 및 FrameworkContentElement 네 개의 클래스를 기본 요소라고 정의한다. ✍ FrameworkElement FrameworkElement는 WPF 프레임워크 수준 요소 클래스와 UIElement 프레젠테이션 서비스의 WPF 핵심 수준 집합을 연결해주는 지점 역할을 한다. 요소 트리를 논리적 트리로 표현하고 태그에서 이러한 트리를 정의하는 작업은 FrameworkElement 수준에서 구현된다. WPF에서는 트리를 이용해 구조를 정의하는데 논리 트리는 시각적 트리와는 다른 개념으로 마크업을 이용해 구조를 표현할 때 이용된다. 논리적 트리는 FrameworkElement에서부터 정의 가능..
변수나 상수가 연산자에 의해 연결되면 식 또는 수식(expression)이 된다. 연산자는 중복되어 사용될 수 있다. 즉 하나의 기호가 여러 가지 기능을 할 수 있다. using System; namespace Hello { class Program { static void Main(string[] args) { Console.WriteLine(3 + 4 * 5); Console.WriteLine((3 + 4) * 5); Console.WriteLine(3 * 4 / 5); Console.WriteLine(4 / 5 * 3); int a = 10, b = 20, c; Console.WriteLine(c = a + b); Console.ReadKey(); } } }
문자열을 숫자로 바꾸는 방법을 두 가지가 있다. 하나는 숫자 형식(int, float, double 등)에 있는 Parse()나 TryParse() 메서드를 사용하는 것이고, 또 다른 하나는 Convert 클래스의 메서드를 사용하는 것이다. Parse()와 TryParse() 두 메서드 모두 문자열의 앞뒤에 있는 공백은 무시한다. 다른 모든 문자들은 int, double, decimal 등의 숫자 형식에 맞는 문자들이어야 한다. 문자열 중간에 공백이 있으면 에러가 발생한다. 예를 들어 decimal.TryParse()를 사용할 때 "10", "10.5" 등은 가능하지만 "10e2" (float 에서는 가능)나 "1 0"과 같은 문자열은 에러가 난다. 문자열이 숫자를 나타내지 않는 경우에는 Parse()는..
✍ 암시적 형변환 float을 double로 형변환하는 경우처럼 작은 자료형을 더 큰 자료형으로 변환할 떄는 데이터의 손실이 생기지 않습니다. 그래서 이런 경우에는 자동으로 형이 변환되고 이것을 암시적 형변환이라고 합니다. ✍ 명시적 형변환 반대로 double을 int로 변환하는 경우처럼 큰 자료형을 작은 자료형으로 변환할 때는 데이터가 손실될 수 있습니다. 이 경우에는 강제로 형변환을 시켜주어야 합니다. 명시적 형변환을 위해서는 변환하고자 하는 자료형으로 기존 자료형을 캐스트(cast) 해줍니다. 예를 들어 double 변수 x가 있을 때 int a = (int)x; 라고 하면 x를 int로 바꾼 후에 int 변수 a에 할당합니다. 이때 x의 값이 소수점 아래 수를 가지고 있다면 정수로 변환되면서 소수..
using System; namespace Hello { class Program { static void Main(string[] args) { float flt = 1F / 3; double db1 = 1D / 3; decimal dcm = 1M / 3; Console.WriteLine("float : {0}\ndouble : {1}\ndecimal : {2}", flt, db1, dcm); Console.WriteLine("float : {0} bytes\ndouble : {1} bytes\ndecimal : {2} bytes", sizeof(float), sizeof(double), sizeof(decimal)); Console.WriteLine("float : {0}~{1}", float.Min..
형식지정자는 크게 두 가지로 나눌 수 있는데, 하나는 표준 형식지정자이고 또 다른 하나는 커스텀 형식지정자가 있다. 이러한 형식지정자는 Console.WriteLine()에서 사용되는데 Console.WriteLine()뿐만 아니라 String.Format()과 To.String()에서도 똑같이 사용될 수 있다. 또 하나 유용한 기능이 커스텀 형식지정자이다. 다음과 같은 기호를 이요하여 쉽게 포맷을 지정할 수 있다. 예를 들어 소수점 아래 두 자리까지만 표시하고 싶다면 ["#.##"]을 쓰면 된다. 세 자리마다 콤마 표시를 하고 소수점 두 자리까지 표시한다면 ["#,#.##"]로 쓰면 된다. 섹션 구분 기호는 아주 독특한 기능을 한다. 숫자를 표시할 때 양수, 음수, 0의 값을 세미콜론으로 구분하여 제각..
✍ using System; namespace Hello { class Program { static void Main(string[] args) { Console.Clear(); Console.WriteLine("Standard Numeric Format Specifiers"); Console.WriteLine( "(C) Currency: . . . . . . . . {0:C}\n" + "(D) Decimal:. . . . . . . . . {0:D}\n" + "(E) Scientific: . . . . . . . {1:E}\n" + "(F) Fixed point:. . . . . . . {1:F}\n" + "(G) General:. . . . . . . . . {0:G}\n" + "(N) Number..
✍ using System; namespace Hello { class Program { static void Main(string[] args) { int v1 = 100; double v2 = 1.234; Console.WriteLine(v1.ToString() + ", " + v2.ToString()); Console.WriteLine("v1 = " + v1 + ", v2 = " + v2); Console.WriteLine("V1 = {0}, V2 = {1}", v1, v2); Console.WriteLine($"v1 = {v1}, v2 = {v2}"); Console.ReadKey(); } } } 💻 (1) 두 개 변수의 값을 각각 문자열로 바꾸어 연결해서 하나의 문자열로 출력하는 방법 (2) 형..
✍ using System; namespace Hello { class Program { static void Main(string[] args) { Console.WriteLine("10 이하의 소수 : {0}, {1}, {2}, {3}", 2, 3, 4, 7); string primes; primes = String.Format("10 이하의 소수 : {0}, {1}, {2}, {3}", 2, 3, 4, 7); Console.WriteLine(primes); Console.ReadKey(); } } } 💻 ✔ 여러 개의 변수나 값을 한 문장으로 출력할 수도 있습니다. 이때는 형성(format) 정보를 사용하여 지정한 개체의 텍스트 표현을 콘솔에 출력한다.