1장 비주얼 C#과 만남
설치하기 전에... 비주얼 스튜디오 닷넷 프로그램 설치 순서 닷넷 응용 프로그램을 개발할 수 있는 통합 환경 간단히 줄여서 VS.NET 이라고 부른다 VS.NET은 윈도우 2000 계열, XP 서버 버전에서 실행 윈도우 2000 계열 윈도우즈 XP 프로그램 설치 순서 윈도우 2000 / XP IIS 설치 SQL 서버 2000 (선택 사항) 윈도우 구성 요소 설치 (제공된 CD) VS.NET 설치 (제공된 CD)
설치하기 전에... IIS 설정 윈도우 2000 서비스 팩 2.0 설치 설치할 때 IIS 항목을 선택하고 [FrontPage Server Extension]이 선택되어 있는지 확인 윈도우 2000 프로페셔널인 경우, 설치할 때 IIS 항목을 선택 FAT32 파일 시스템인 경우, 설치 과정에서 [Server Extension]이 구성되지 않았다는 메시지가 보여질 수 있다. 윈도우 2000 서비스 팩 2.0 설치 윈도우 서비스 팩 2.0을 설치해야 gkau, 서비스 팩은 윈도우 구성 요소 설치 과정에서 자동으로 설치 IIS 설치 윈도우 서비스 팩은 윈도우 OS 언어와 일치하는 경우에만 설치
C# 프로그램 시작 첫 번째 C# 프로그램 <따라하기 - Hello 예제> 주석 처리 Main 메서드 System.Console 객체 WriteLine 메서드 <따라하기 - Hello 예제> “안녕하세요, C# 프로그래밍”이라는 문자열을 출력하는 예제로 메뉴에서 [파일]-[새로 만들기]-[프로젝트]를 선택하면 프로젝트 만들기 대화상자 대화상자에서 프로젝트 이름과 작업할 폴더를 지정하고 새로운 프로젝트를 생성
C# 프로그램 시작 <따라하기 - Hello 예제> 대화상자에서 프로젝트 이름과 작업할 폴더를 지정하고 새로운 프로젝트를 생성
C# 프로그램 시작 <따라하기 - Hello 예제> 프로젝트 만들기 대화상자에서 지정했던 프로젝트 이름이 네임스페이스로 정의되고 네임스페이스 안에 클래스가 생성
C# 프로그램 시작 <따라하기 - Hello 예제> 클래스 이름을 Class1에서 Hello로 수정하고, 코드에서 TODO 주석을 없애고 다음 코드를 입력 생성
C# 프로그램 시작 <따라하기 - Hello 예제> 코드를 입력하는 도중 Console을 입력하고 ‘.‘을 입력하는 순간 선택 가능한 멤버 리스트가 나타난다.
C# 프로그램 시작 <따라하기 - Hello 예제> [빌드]-[빌드] 메뉴를 선택하면 코드를 컴파일 Ctrl+F5 키를 눌러 프로그램을 실행하면 도스 창이 뜨면서 다음과 같이 실행 결과가 나타난다.
C# 프로그램 시작 코드 설명 주석이란 프로그램과 소스 코드에 대해 간단히 설명을 적어놓을 때 이용 C#에서 모든 프로그램의 실행은 Main 메서드에서 시작되며, Main 메서드는 코드 실행 시작 지점을 나타내는 메서드 . Console 객체는 콘솔에 출력하거나 키보드로부터 읽어올 때 쓰는 객체이며, System 네임스페이스에 정의 Console.WriteLine( "Hello C#" );
클래스 클래스 클래스(class)란 하나의 객체를 구현하는 단위이며, 객체 프로그래밍에서 객체를 코드로 구현할 때 클래스로 표현 C#에서 모든 코드는 반드시 클래스 안에 있어야 하기 때문에 클래스 안에 Main 메서드를 정의 메서드 C#에서 메서드(method)란 함수를 가리키는 의미 C/C++ 언어에서는 이것을 함수라고 부르고 비주얼 베이직에서는 메서드라고 부른다. 메서드는 어떤 기능을 하는 코드를 하나로 묶어놓은 것 메서드가 받아들이는 값을 인자 값이라고 하고, 실행 후 결과 값을 알려주는 것을 “값을 리턴한다“라고 표현 class Hello { }
클래스 멤버 멤버(Member)란 클래스 내에 정의한 모든 것을 의미 public int Method1( int n ) { return 0; } 멤버 멤버(Member)란 클래스 내에 정의한 모든 것을 의미 클래스는 필드(field), 메서드(method), 프로퍼티(property), 이벤트(event) 등등 다양한 멤버를 가질 수 있다 . 클래스 멤버는 다시 인스턴스(instance) 멤버와 정적(static) 멤버로 분리 인스턴스 생성 과정 없이 멤버를 쓰려면 다음과 같이 정적(static) 메서드로 정의 public static void Main() {}
네임스페이스 네임스페이스 정의 네임스페이스는 클래스를 분류해서 정리하는 방식 클래스를 계층적으로 정리하고 이름을 정의함으로써 다른 사람이 만든 클래스와 충돌을 줄임 네임스페이스를 이용하면 클래스 이름을 간단 명료하게 정의 다음은 FirstApp 네임스페이스 안에 Hello 클래스를 정의한 예
네임스페이스 단계별 네임스페이스 네임스페이스 안에 또 다른 네임스페이스를 하나 더 정의 네임스페이스를 다음과 같이 간단하게 줄여서 정의 C#에서 제공되는 클래스 라이브러리는 여러 네임스페이스로 분류되어 제공 namespace TestProgram { namespace FirstApp { } } namespace TestProgram.FirstApp { }
네임스페이스 using 문 using 문은 네임스페이스 이름을 쓰지 않고서도 바로 클래스를 쓸 수 있도록 도와주는 단축키 Console 객체는 System 네임스페이스에 정의된 객체 using 문을 쓰지 않고 직접 네임스페이스 이름을 명시해서 쓴 예 TestProgram.FirstApp.Hello using TestProgram.FirstApp; // System 네임스페이스를 써준 예 System.Console.WriteLine( "Hello C#" );
콘솔 출력 WriteLine 메서드 예제를 컴파일하고 실행하며, 실행 결과는 WriteLine 메서드를 이용해서 화면에 출력 윈도우 프로그래밍을 배우기 전까지 콘솔 프로그램에서 소스를 입력하고 실행 WriteLine 메서드를 이용한 몇 가지 예 "Hello"처럼 바로 문자열을 출력할 수도 있고, 인자를 주어서 출력할 수도 있다 인자를 주는 경우, 출력할 내용이 들어갈 위치가 필요
콘솔 출력 WriteLine 메서드 "Hello" 문자열과 함께 {0},{1}과 같이 넣어주면 들어온 순서대로 값을 화면에 나타남 {0}은 첫 번째 인자 값이 들어갈 위치이고 {1}은 두 번째 인자 값이 들어갈 위치 C#에서 쓰이는 모든 데이터형을 다 출력할 수 있으며, 마찬가지로 출력할 위치에 {0},{1}.{2},..를 넣어 준다. Console.WriteLine( "string : {0}", "C#" ); Console.WriteLine( "int : {0}", 123 ); Console.WriteLine( "double : {0}", 123.456 );
콘솔 출력 Write 메서드 출력할 문자 ‘ 문자 NewLine 문자 “ 문자 \r carriage Return 문자 Write 메서드는 결과만 출력하기 때문에 다음과 같이 Write 메서드를 써주면 같은 줄에 출력할 수 있다 이스케이프 문자 출력 C# 언어의 기본 문법은 대부분 C/C++ 언어 문법을 그대로 사용 문자열 중간에 ‘\n' 문자를 넣으면 다음 줄로 이동해서 출력 Console.Write( “Hello” ); Console.Write( “C# Program” ); Console.Write( “Hello \n 여기서부터 다음 줄 \n 그 다음 줄” ); 특정 문자 출력할 문자 \' ‘ 문자 \n NewLine 문자 \" “ 문자 \r carriage Return 문자 \\\ Back Slash 문자 \t Tab 문자 \b Backspace 문자 \v Vertical Tab 문자
콘솔 출력 출력 포맷 지정 포맷 문자 설명 C currency를 나타내는 포맷, $12,345,67 D 정수형 포맷, 1234 출력할 값에 대해 출력 포맷을 지정 할 수 있다 포맷 문자 설명 C currency를 나타내는 포맷, $12,345,67 D 정수형 포맷, 1234 E or F 실수형 포맷, 1.2346e+003 or 1234.5678 G 일반형 포맷 N Number 형, 콤마를 넣어서 출력, 12,345.67 X or x 16진수 값 출력, 4D2 or 4d2
콘솔 출력 출력 포맷 지정 실수 값을 여러 포맷으로 출력한 예 double f = 1234.5678; Console.WriteLine( "{0:F}", f ); // "1234.56" Console.WriteLine( "{0:F4}", f ); // "1234.5678" Console.WriteLine( "{0,20:F4}", f ); // " 1234.5678" Console.WriteLine( "{0,-20:F4}", f ); // "1234.5678 "
Main 메서드 리턴형 예제에서 사용한 Main 메서드는 리턴형이 없는 메서드로 이런 경우, 리턴형을 void 형으로 지정 정수 값을 리턴한다면 다음과 같이 수정 void 형 리턴형으로 지정하고 메서드가 받아들이는 인자를 지정하지 않은 경우 public static int Main() { return 0; } public static void Main() { }
Main 메서드 리턴형 void 리턴형을 가진 메서드라 할지라도 중간에 메서드를 종료하려고 할 때 다음과 같이 빈 return 문을 쓸 수 있다 실행 인자 Main 메서드에 인자를 받아들이도록 바꾼 것 이 인자는 string 형 배열이며 도스 창에서 입력한 명령 인자를 받아들이기 위한 것 Main 메서드에서는 arg1, arg2, arg3 인자를 문자열로 받아서 처리 넘겨진 인자들은 string 형 배열로 구성되어 Main 메서드에 넘겨짐 public static void Main() { .... return; } app.exe arg1 arg2 arg3
Main 메서드 실행 인자 실행할 때 입력된 명령 인자를 가져와서 보여준 예제 배열이 가지고 있는 문자열 개수를 알아내려면 Length를 이용 이 값은 곧 입력받은 명령 인자 개수를 나타낸다 using System; class Class1 { public static void Main( string[] args ) { // 1개 이상의 인자를 입력해야 결과가 출력됨 if ( args.Length > 1 ) { Console.WriteLine( "[0] : {0}", args[0] ); Console.WriteLine( "[1] : {0}", args[1] ); } else Console.WriteLine( "[usage]: arglist /option1 /option2" ); } }
Main 메서드 실행 인자 실행할 때 다음과 같이 실행 파일 뒤에 인자를 임의로 입력 공백을 이용해서 각 인자를 구분하기 때문에 인자와 인자 사이에 공백 문자를 넣어주면 다른 인자로 인식 일반적으로 프로그램에 옵션을 주어 실행을 다르게 할 때 사용
Main 메서드 VS.NET에서 인자 값 지정 VS.NET에서 프로그램을 실행할 때, 인자를 주어야 되는 경우가 있는데 디버그를 할 때 인자를 준다. 솔루션 탐색기에서 프로젝트를 선택하고 오른쪽 버튼을 누르면 [속성] 메뉴가 나타 난다 메뉴를 선택하면 다음 대화상자가 나타 난다
마무리 간단한 C# 예제를 통해서 C# 프로그램을 작성 클래스(class) - C# 언어에서 객체를 구현하는 단위 메서드(method) - C# 언어에서 메서드(method)란 함수를 가리키는 말 메서드는 다음과 같이 클래스 이름 다음에 ‘.’을 붙여서 나타냄 System.Console 객체 - Console 객체는 화면에 출력할 때 쓰는 객체 WriteLine 메서드는 화면에 문자열을 출력하고 다음 줄로 이동 {0}, {1} 는 인자가 들어갈 위치 Hello.Method(); Console.WriteLine( "{0} {1} {2}", "Hello", "C#", “Programming” );