본문 바로가기

Programming

[WPF] 필수! 데이터 바인딩 맛보기 WPF Prog. C#을 공부하면서 함께하는 WPF 입니다. 다소 부족한 점이 있더라고 양해 부탁드립니다. 흠, 데이터 바인딩 아주 기초적이면서도 필요한 기술이죠? 실제로 컨트롤들을 다뤄서 프로그래밍할려면.. 와 근데 정말 WPF에서 제공하는 데이터 바인딩은 아주 근사합니다. XaML에서 제어할 수 있는데요. 멋져요 멋져. 안드로이드에서도 XML에서 다루는 것은 못봤는데.. (제가 부족합니다 ^^) 아무튼 간단한 프로그램 만들어봤어요. (예제는 공부하는 책에서 ^^) 실제로 cs파일은 하나도 건들이지 않고, XaML에서만 설정을 통해 바인딩을 했습니다. 위의 검정 부분이 데이터를 바인딩 하는 부분입니다. 스크롤바의 이름을 바인딩(ElementName에) 시키구요. 그 스크롤바의 값을 가져와서 레이블의 C.. 더보기
[WPF] 창 크기를 고정시켜보자~ WPF Prog. C#을 공부하면서 함께하는 WPF 입니다. 다소 부족한 점이 있더라고 양해 부탁드립니다. 우리가 만든 창의 크기를 고정시키는 방법입니다. 아주 간단합니다. 위의 ResizeMode="NoResize" 를 추가시켜주면 적용됩니다. 더보기
[WPF] Hello World! 출력해보기 WPF Prog. C#을 공부하면서 함께하는 WPF 입니다. 외국 튜토리얼에서 보고 비슷하게 구성해 본 것입니다. 별다른 설명을 하지 않고 프로젝트를 만들어 보고 간단한 테스트를 해보겠습니다. 1. [FILE] → [New Project] → [WPF Applicatoin] 을 선택하고 "NAME"을 "TEST_WPF" 라 설정했습니다. 2. 프로젝트를 만들고 난후 보여지는 화면입니다. 탭이 상단에 두개 생성된 것을 볼 수 있습니다. 안드로이드와 아주 유사한데요. 한쪽은 UI 를 보여주고 밑쪽에 바로 테스트를 할 수 있도록 되어 있습니다. 아주 편리하네요. 수정하자마자 확인이 가능합니다. 안드로이드 !! 좀 배우라고 기본 설정좀 바꿔!! 그리고 두번째 탭은 실제 동작 코드가 들어가는 곳입니다. 3. UI.. 더보기
[C#] 접근자(Accessor)와 변경자(mutator)에 대해서 알아보자! C# Prog. 처음으로 C#을 공부하면서 포스팅한 것이기에 다소 틀린 내용이 있을 수 있습니다. 그리고, 다른 언어를 알고 계시다는 가정하에 포스팅 하기때문에, 프로그래밍 언어를 처음 공부하시는 분은 다른 글도 참고하시길 바랍니다. 이 글은 을 참고하였습니다. 이번에는 접근자와 변경자에 대해서 알아볼까 합니다. 다른 말로 하자면, getter와 setter 입니다. 이것들을 통해서 클래스의 프로퍼티(속성)에 대해 접근을 하고 변경을 할 수 있는데요. C#에서 제공하는 이들은 자바보다 굉장히 간결하면서 편리합니다. 하지만, 어떻게 보면 난잡하다는 생각도 들더군요. 그건 취향나름*^^* 우선 기본적으로 프로퍼티에 대해서 접근자와 변경자를 등록하는 방법은 다음과 같습니다. 접근자 데이터타입 속성명; 접근자 .. 더보기
[C#] 문자열을 숫자로 바꿔봅시다! C# Prog. 처음으로 C#을 공부하면서 포스팅한 것이기에 다소 틀린 내용이 있을 수 있습니다. 그리고, 다른 언어를 알고 계시다는 가정하에 포스팅 하기때문에, 프로그래밍 언어를 처음 공부하시는 분은 다른 글도 참고하시길 바랍니다. 이 글은 을 참고하였습니다. C#에서 문자열을 숫자 타입으로 바꾸는 것을 해볼 예정입니다. 자바를 해보신 분이라면, parseInt()라는 함수를 떠올리실텐데요, 아주 유사합니다. namespace TEST { class Test { static void Main(string[] args) { string a = "1123"; Console.WriteLine("확인된 a의 타입은 {0} 이고 값은 {1}입니다.", a.GetType(), a); Console.WriteLin.. 더보기
[C#] 아주 유용한 매개변수의 특징에 대해서 알아봅시다. C# Prog. 처음으로 C#을 공부하면서 포스팅한 것이기에 다소 틀린 내용이 있을 수 있습니다. 그리고, 다른 언어를 알고 계시다는 가정하에 포스팅 하기때문에, 프로그래밍 언어를 처음 공부하시는 분은 다른 글도 참고하시길 바랍니다. 이 글은 을 참고하였습니다. 이번글에 다룰 매개변수의 몇가지 특징에 대해서, 정말 C#이 자바에 비해서 얼마나 세심하게 만들어졋나 라는 생각을 해보게 되었는데요. 뭐.. 매개변수가 별다른게 있겠어? 라고 생각하시는 분들도 있겠지만, 이글을 읽어보시면, 정말.. 세심하다 라는 생각을 하시게 될거에요. 세심!세심! 책에서 밝히길 명명된(Named), 선택적(Optional) 매개변수 라는 것을 알려주는데요. 간단히 얘기하자면 다음과 같습니다. 1. 명명된(Named) 매개변수 .. 더보기
[C#] ref, out 을 통한 Call by Reference 구현해보기 C# Prog. 처음으로 C#을 공부하면서 포스팅한 것이기에 다소 틀린 내용이 있을 수 있습니다. 그리고, 다른 언어를 알고 계시다는 가정하에 포스팅 하기때문에, 프로그래밍 언어를 처음 공부하시는 분은 다른 글도 참고하시길 바랍니다. 이 글은 을 참고하였습니다. C#에서는 참조에 의한 호출(전달)을 위한 두가지 키워드를 제공하는데요. 'ref'와 'out' 바로 이들입니다. 우선 'ref'는 기존의 C의 포인터와 유사하게 메모리내에 저장되어 있는 값을 가리킵니다. 하지만, 포인터라고는 할 수 없을 것같습니다. 알아보니 'unsafe'라는 포인터를 사용하기 위한 키워드가 따로 존재하더군요. 그래서 제 생각으로는 단순히 참조를 하기위한 키워드로 사료됩니다. 'out' 매개변수는 '출력 전용 매개 변수'라 해.. 더보기
[C#] 알아서 타입을 지정해주는 var 타입을 사용해보자. C# Prog. 처음으로 C#을 공부하면서 포스팅한 것이기에 다소 틀린 내용이 있을 수 있습니다. 그리고, 다른 언어를 알고 계시다는 가정하에 포스팅 하기때문에, 프로그래밍 언어를 처음 공부하시는 분은 다른 글도 참고하시길 바랍니다. 이 글은 을 참고하였습니다. 스크립트 언어에서나 볼법한 var 타입입니다. var 타입은 프로그래머가 데이터 타입의 신경쓰지 않아도, 알아서 변수에 있는 값을 판단해서 타입을 인식을 하는 타입인데요. C#에서도 동일하게 지원합니다. 아주 유연해 지겠군요. 하지만, 남용은 금물인 것 아시죠? 기본적으로 데이터 타입의 존재는 원하지 않거나 잘못된 값을 저장하는 것을 방지하기 위한 수단으로 쓰입니다. var 타입으로 사용하기 위한 두가지 조건이 있는데요. 1. 지역변수로만 사용가.. 더보기
[C#] 원시타입(primitive)에 Nullable 을 사용해보자 C# Prog. 처음으로 C#을 공부하면서 포스팅한 것이기에 다소 틀린 내용이 있을 수 있습니다. 그리고, 다른 언어를 알고 계시다는 가정하에 포스팅 하기때문에, 프로그래밍 언어를 처음 공부하시는 분은 다른 글도 참고하시길 바랍니다. 이 글은 을 참고하였습니다. 자바에서는 클래스에 속하는 변수를 사용하기 위해서는 변수를 초기화 해주는 작업이 필요합니다. 특히, 원시(primitive) 타입의 변수는 다음과 같이 null값을 넣어줄 수 없습니다. 쓰려면, 참조타입의 래퍼 클래스로 캐스팅 해줘야 합니다. 하지만, C#에서는 자바에서 볼 수 없는 Nullable 형식을 지원하는데요? 이것을 지원해줌으로써 당당히(?) 비어있는 상태 즉, null 값을 가진 상태를 만들어 줄 수 있습니다. 우선 형태는 보시는 바.. 더보기
[C#] enum 열거형을 사용해보자. C# Prog. 처음으로 C#을 공부하면서 포스팅한 것이기에 다소 틀린 내용이 있을 수 있습니다. 그리고, 다른 언어를 알고 계시다는 가정하에 포스팅 하기때문에, 프로그래밍 언어를 처음 공부하시는 분은 다른 글도 참고하시길 바랍니다. 이 글은 을 참고하였습니다. enum은 사용자 정의의 데이터의 집합을 의미합니다. enum을 통해서, 형식화된 상수타입의 데이터를 정의할 수 있습니다. 그럼으로써, 잘못된 데이터를 사용하거나 읽을 가능성을 없애주죠. 그리고 값의 중복 가능성을 배제해주기도 합니다. 우선, enum의 선언은 방식은 다음과 같습니다. enum 열거명[ : 자료형 ]{상수1, 상수2, 상수3 ...} 한번 테스트 해보겠습니다. using System; namespace Test { class Te.. 더보기