SlideShare a Scribd company logo
1 of 26
C# 맛보기
HelloWorld
• 툴 만드는 데 쓰면 콘솔 프로그래밍 할 일은 없겠지만
WriteLine() 으로 찍어보면 된다
ReadyKey() 없으면 그냥 꺼진다
C++에서 getchar() 넣는 거랑
비슷하다
그럼 바로 툴 만들기
윈도우 플랫폼으로 만들면
Form 디자인을 바로 볼 수 있다
새로운 메뉴 추가하기
“도구 상자”가 생겼다.
여기서 드래그 & 드랍으로 Form을 만들 수 있다(뭐?)
Designer 파일
Form1.Designer.cs 파일에 보면
아까 추가한 button1이 private 멤버로 추가되어 있다
게다가 button1을 생성하기 위한 코드도 자동으로
만들어진다
마음대로 고치면 안 될 것 같다
자동으로 하게 내버려두자
프로그램 메인은 심플하게 생겼다
STAThread는 싱글 스레드에서
돌아간다는 이야기
Form1을 생성해서 Run()
I/O는 이벤트 기반으로 처리되고
그 내용들은 전부 Form1 안에
메뉴를 만들어보자
그냥 MenuStrip을 드래그&드롭하면 된다
이런 식으로 아무거나 채울 수 있다
Exit 기능 구현
Exit를 한 번 더블클릭 해 본다
음?? 이런 게 생겼다
Exit 기능 구현
Application.Exit();
한 줄만 추가해준다
빌드하고 실행
잘 뜬다.
Exit를 누르면 종료되는 것까지 확인할 수 있다.
나머지 메뉴와 버튼은 아무 동작을 지정해주지 않아서
선택해도 아무 일도 일어나지 않는다
다른 폼을 하나 추가해볼까?
WebBrowser 컨트롤을 추가해준다
검색 창을 이용하면 찾기 쉽다
TextBox 추가
이 TextBox에 URL을 입력하고 button1을 누르면
위의 Browser 창에 홈페이지가 뜨게 만들 것이다
Button의 속성 변경
Button1 이라는 네이밍은 너무한 것 같다. 버튼을 선택하고 속성 창을 보면 Text 속성이 보인다.
이걸 마음에 드는 대로 바꾸자
textBox의 속성 변경
이번엔 textBox를 선택한다
textbox 속성 중에 바꿔야
하는 것은 (Name)이다!
이 (Name)은 Text와 달리
프로그램 내부에서 식별하기
위해 사용한다
URLInput으로 바꾸자
잠시 디자이너 파일로
보다시피 버튼은 Text를 Go!로 바꿨지만 프로그램 내부에서는 여전히 button1 이다.
textBox는 URLInput 으로 변수 명이 바뀌었다
기능을 넣자
• 우리가 하고 싶은 것은 URLInput에 적힌 텍스트를 받아서
WebBrowser 컨트롤러로 쏴주는 것이다
• 아무 때나 그러면 안 되고 버튼을 눌렀을 때만 작동해야 한다
• C#에서 이 정도는 쉽게 할 수 있다!
• 지금까지 손해보고 산 기분
일단 Go! 버튼을 눌렀을 때
하려던 일 그대로
URLInput 박스의 텍스트를
webBrowser1 컨트롤로
Navigate는 해당 url을 불러오게
만드는 메소드다
시험 삼아 돌려보자
허.. 진짜 되네
그런데 창이 너무 작다
Form 크기 수정
이쯤 되면 눈치 챘겠지만
그냥 마우스로 늘려주면 된다…
폼 안에 있는 컨트롤도 재배치하자
Form 크기 수정
잘 보인다
파일 입출력 한 번 해볼까?
버튼 2개를 달아주고 하나는 파일로 만들기(makeFile), 하나는 파일에서 읽기(readFile) 라고 해줬다
각각의 함수를 만들어주자
System.IO가 있어야 한다
각각의 함수를 만들어주자
파일 쓰기
각각의 함수를 만들어주자
파일 읽기
돌려보면?
읽고 쓰기 둘 다 잘 된다!
앞으로 할 일은?
• DLL 가져오는 거
• DirectX 기능을 끌어다 써야 툴을 만들 수 있겠지?
• XML parser랑 붙이는 거
• 속성 값이랑 맵 하드코딩 하기 싫으면
• 디버깅& 테스트 툴
• 한 줄 바꾸고 컴파일 하고싶지 않으면

More Related Content

Viewers also liked

家に帰るまでが遠足です
家に帰るまでが遠足です家に帰るまでが遠足です
家に帰るまでが遠足です
Cryolite
 
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructorC++14 solve explicit_default_constructor
C++14 solve explicit_default_constructor
Akira Takahashi
 
GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터
Mark Choi
 
4.5부동소수점
4.5부동소수점4.5부동소수점
4.5부동소수점
JaeHong Park
 
GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체
Mark Choi
 
Digital lighting and rendering
Digital lighting and renderingDigital lighting and rendering
Digital lighting and rendering
JaeHong Park
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비
SeungMin Yang
 
이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예
zupet
 
[C++ lab] 9. 디버깅 테크닉
[C++ lab] 9. 디버깅 테크닉[C++ lab] 9. 디버깅 테크닉
[C++ lab] 9. 디버깅 테크닉
MinGeun Park
 

Viewers also liked (20)

家に帰るまでが遠足です
家に帰るまでが遠足です家に帰るまでが遠足です
家に帰るまでが遠足です
 
C++が仲間になりたそうにこちらを見ている
C++が仲間になりたそうにこちらを見ているC++が仲間になりたそうにこちらを見ている
C++が仲間になりたそうにこちらを見ている
 
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructorC++14 solve explicit_default_constructor
C++14 solve explicit_default_constructor
 
Ccx03.cocos builder
Ccx03.cocos builderCcx03.cocos builder
Ccx03.cocos builder
 
Dll파일 호출
Dll파일 호출Dll파일 호출
Dll파일 호출
 
GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터
 
Cocos2d x a to z (상)
Cocos2d x a to z (상)Cocos2d x a to z (상)
Cocos2d x a to z (상)
 
Dom 생성과정
Dom 생성과정Dom 생성과정
Dom 생성과정
 
Silverlight vs flash
Silverlight vs flashSilverlight vs flash
Silverlight vs flash
 
4.5부동소수점
4.5부동소수점4.5부동소수점
4.5부동소수점
 
게임 개발자로서의 가치 창출
게임 개발자로서의 가치 창출게임 개발자로서의 가치 창출
게임 개발자로서의 가치 창출
 
투영 공식
투영 공식투영 공식
투영 공식
 
[NDC14] 파워포인트로 그래픽 리소스 만들기
[NDC14] 파워포인트로 그래픽 리소스 만들기[NDC14] 파워포인트로 그래픽 리소스 만들기
[NDC14] 파워포인트로 그래픽 리소스 만들기
 
GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체
 
Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2
 
Digital lighting and rendering
Digital lighting and renderingDigital lighting and rendering
Digital lighting and rendering
 
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록 [KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비
 
이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예
 
[C++ lab] 9. 디버깅 테크닉
[C++ lab] 9. 디버깅 테크닉[C++ lab] 9. 디버깅 테크닉
[C++ lab] 9. 디버깅 테크닉
 

Similar to C# 뉴비를 위한 맛보기

절차지향 vs 객체지향
절차지향 vs 객체지향절차지향 vs 객체지향
절차지향 vs 객체지향
QooJuice
 

Similar to C# 뉴비를 위한 맛보기 (19)

게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)
 
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
 
Wink
WinkWink
Wink
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
 
나의 첫 윈도우/맥 애플리케이션 개발하기
나의 첫 윈도우/맥 애플리케이션 개발하기나의 첫 윈도우/맥 애플리케이션 개발하기
나의 첫 윈도우/맥 애플리케이션 개발하기
 
스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향
 
코딩 생산성 높이기
코딩 생산성 높이기코딩 생산성 높이기
코딩 생산성 높이기
 
기획자로 살아남기-인턴편-.pptx
기획자로 살아남기-인턴편-.pptx기획자로 살아남기-인턴편-.pptx
기획자로 살아남기-인턴편-.pptx
 
[프로그라피 정기 세션] Github으로 협업하기
[프로그라피 정기 세션] Github으로 협업하기[프로그라피 정기 세션] Github으로 협업하기
[프로그라피 정기 세션] Github으로 협업하기
 
영상 스터디 1회차
영상 스터디 1회차영상 스터디 1회차
영상 스터디 1회차
 
스크래치로 시작하는 코딩
스크래치로 시작하는 코딩스크래치로 시작하는 코딩
스크래치로 시작하는 코딩
 
C언어 들어가기
C언어 들어가기C언어 들어가기
C언어 들어가기
 
UX 이론 - 개발자의 관점에서
UX 이론 - 개발자의 관점에서UX 이론 - 개발자의 관점에서
UX 이론 - 개발자의 관점에서
 
How to use Github? (For Cien)
How to use Github? (For Cien)How to use Github? (For Cien)
How to use Github? (For Cien)
 
C언어 들어가기
C언어 들어가기C언어 들어가기
C언어 들어가기
 
C#과 유니티를 통한 게임개발 입문.
C#과 유니티를 통한 게임개발 입문.C#과 유니티를 통한 게임개발 입문.
C#과 유니티를 통한 게임개발 입문.
 
당신의 디버깅에 니코니코니
당신의 디버깅에 니코니코니당신의 디버깅에 니코니코니
당신의 디버깅에 니코니코니
 
절차지향 vs 객체지향
절차지향 vs 객체지향절차지향 vs 객체지향
절차지향 vs 객체지향
 
자바 인터페이스 Java interface
자바 인터페이스 Java interface자바 인터페이스 Java interface
자바 인터페이스 Java interface
 

More from 진상 문 (8)

Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
 
[C++ beginner] sizeof()
[C++ beginner] sizeof()[C++ beginner] sizeof()
[C++ beginner] sizeof()
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
 
Pervasive computing
Pervasive computingPervasive computing
Pervasive computing
 
Dll 파일 호출의 2가지 방법
Dll 파일 호출의 2가지 방법Dll 파일 호출의 2가지 방법
Dll 파일 호출의 2가지 방법
 
무중력 상태에 필요한 기초 물리
무중력 상태에 필요한 기초 물리무중력 상태에 필요한 기초 물리
무중력 상태에 필요한 기초 물리
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver
 
Halo ce anniversary Postmortem
Halo ce anniversary PostmortemHalo ce anniversary Postmortem
Halo ce anniversary Postmortem
 

C# 뉴비를 위한 맛보기