본문 바로가기

C#

[C#] C#의 기본

<콘솔로 출력>

새로운 코드를 입력한다

 

실행한 화면 : 콘솔(Console)

 

Console.WriteLine("어서 오세요 C#으로!");

 

Main() 메서드

public static void Main()

 

중괄호로 감싸져 있는 부분 : 블록(block)

Main() 메서드로부터 프로그램이 시작됨

 

1구문씩 처리한다

C#에서는 하나의 작은 처리(일)의 단위를 구문(statement)라고 하며, 마지막에 기호 :(세미콜론)을 붙임

 

[구문]이 원칙적으로 차례대로 앞에서부터 1구문씩 처리된다

 

★중요

구문에는 :(세미콜론)을 붙인다

구문은 원칙적으로 기술한 순서대로 처리된다

 

코드를 읽기 쉽게 한다

C# 코드에서는 구문의 도중이나 블록 안에서 줄바꿈해도 된다

 

코드 안에서 들여쓰기를 시행하는 것 : 인덴트(indent)

 

★중요

코드를 읽기 쉽게 하기 위해서 인덴트와 줄바꿈을 사용한다

 

주석을 기술한다

 

C#에서는 기호 //부터 그 행의 마지막까지의 문자를 무시하고 처리한다 : 주석(comment)

 

/* */ 를 사용하는 형태도 있음

감싸진 부분이 전부 주석 처리됨

 

★중요

주석을 입력해서 프로그램을 쉽게 이해할 수 있게 한다

 

<폼>

윈도 화면을 작성한다

 

using System.Windows.Forms;

class Sample2
{
	public static void Main()
    {
    	Form = fm;			//윈도(폼)에 붙이는 이름을 준비
        fm = new Form();		//폼을 작성
        
        fm.Text = "어서 오세요 C#으로!";	 //폼의 타이틀을 설정
        
        Application.Run(fm);		//폼을 지정해서 실행함
    }
}

 

클래스와 오브젝트

 

다음 2개의 구문으로 윈도 화면을 작성함

Form fm;
fm = new Form();

 

C# 개발 환경에는 이 기본이 되는 윈도의 모형이 준비되어 있음

이 모형을 바탕으로 실제 윈도를 만들어 나감

윈도 등 물체의 기본이 되는 모형 : C#에서는 클래스(class)

프로그램 안에서 실제로 작성되는 윈도 : 오브젝트(object)

 

★중요

클래스를 이용해서 오브젝트를 작성한다

 

오브젝트명을 선언한다

 

실제로 작성하는 윈도를 위해 그 이름을 준비한다

 

실제로 작성하는 윈도 오브젝트에 이름을 붙이는 것, 오브젝트 명 : 선언(declaration)

 

클래스명 오브젝트명;

 

C#에서는 오브젝트에 붙이는 이름은 식별자(identifier)라는 문자의 조합에서 고름

 

- 식별자에는 문자, 숫자, 언어스코어 등을 사용함

- 식별자를 숫자로 시작할 수 없음

- 대문자와 소문자는 다른 것으로 구별함

- 사전에 C#이 예약한 [키워드]는 사용할 수 없음. 주요 키워드로 new나 class가 있음

- 식별자의 길이에 제한이 없음

 

프로그래밍의 관습으로 영문자 숫자 조합의 이름을 많이 사용함

 

오브젝트는 우리가 실제로 만드는 윈도이기 때문에 식별자의 규칙에 맞으면 자기가 원하는 단어를 사용해도 됨

그래서 여기선 [fm]이라는 이름을 붙이기로 함

일반적으로는 폼(윈도)인 것을 쉽게 알 수 있는 단어를 사용하면 좋음

 

★중요

오브젝트를 사용하기 위해서는 이름을 선언한다

 

오브젝트를 작성한다

오브젝트를 작성하려면 키워드 new를 사용

new 클래스명();

 

fm = new Form();

 

오브젝트명의 선언과 오브젝트의 작성을 시행하는 이 두 개의 구문은 하나의 구문으로 합칠 수 있음

Form fm = new Form();

 

★중요

오브젝트를 작성하고 오브젝트명으로 사용할 수 있게 한다

 

프로퍼티를 설정한다

클래스로부터 오브젝트를 작성할 수 있었음

작성한 오브젝트는 우리의 프로그램에 맞게 조금씩 상태를 바꾸거나 모형으로서 정리된 기능을 이용해야함

 

윈도는 타이틀, 색 등 다양한 기능을 갖고 있음

C#에서는 이러한 오브젝트의 상태를 프로퍼티(property)라는 구조로 설정할 수 있음

 

프로퍼티의 설정

오브젝트명.프로퍼티명 = 값;

 

fm.Text = "어서 오세요 C#으로!";

프로퍼티 설정해서 타이틀 바꾸기

 

Application.Run(fm);

 

★중요

오브젝트의 프로퍼티를 설정할 수 있음

 

코드를 살펴본다

C#의 코드는 class라는 단어가 앞부분에 붙은 블록으로 이루어져 있음

작성하고 있는 프로그램도 클래스 형식으로 기술하고 있음

 

문자와 이미지

문자열을 표시한다

 

윈도를 구성하는 부품 : 컨트롤(Control)

윈도 상에 문자를 표시하는 기능을 가진 라벨(Label)이라는 컨트롤을 사용

 

using System.Windows.Forms;

class Sample3
{
	public static void Main()
    {
    	Form fm = new Form();
        fm.Text = "어서 오세요 C#으로!";
        
        Label lb = new Label();
        lb.Width = 150;
        lb.Text = "C#을 시작합시다!";
        lb.Parent = fm;
        
        Application.Run(fm);
    }
}

 

Label lb = new Label();	//라벨을 작성합니다
lb.Text = "C#을 시작합시다!";	//라벨의 타이틀을 설정합니다

 

lb.Parent = fm; //지정한 라벨을 지정한 폼 위에 올립니다

 

 

이미지를 표시한다

이미지를 표시하는 컨트롤인 픽처 박스(PictureBox)를 사용

 

먼저 C 드라이브 아래에 100x50 픽셀의 비트맵 이미지를 car.bmp라는 이름으로 저장

코드 안에서 이 이미지를 읽어 들이는 처리를 시행해 표시

 

System.Drawing 참조 추가 (System, System.Windows.Forms, System.Drawing)

 

using System.Windows.Forms;
using System.Drawing;

class Sample4
{
	public static void Main()
    {
    	form fm = new Form();
        fm.Text = "샘플";
        
        PictureBox pb = new PictureBox();	//이미지를 읽어 들이는 픽처박스를 작성합니다
        pb.Image = Image.FromFile("c:\\car.bmp)";	//이미지를 읽어 들입니다
        pb.Parent = fm;
    }
}

 

pb.Image = Image.FromFile("c:\\car.bmp");

\ : 폴더구분. \\로 나타내기(\ 기호에 신경 써서 확인해보기)

c드라이브 아래에 저장한 car.bmp라는 이미지 파일을 읽어 들이는 것을 지정

 

★중요

컨트롤을 이용해서 윈도상에 문자열, 이미지를 표시할 수 있다

 

이스케이프 시퀀스

\a 경고음

\b 백 스페이스

\t 수평 탭

\v 수직 탭

\n 줄바꿈

\f 폼피드

\r 복귀

\' '

\" "

\\ \

\0 null

\uhhhh 16진수 hhhh의 문자 코드를 가진 문자

 

레슨의 정리

- 콘솔에 문자를 표시할 수 있음

- Main() 메서드의 앞부분부터 프로그램의 실행이 시작됨

- 구문은 처리의 작은 단위

- { }로 감싼 부분을 블록이라고 함

- 주석문으로 코드 안에 메모를 적어 둘 수 있음

- 클래스로부터 오브젝트를 작성할 수 있음

- 프로퍼티를 설정해서 오브젝트 상태를 설정할 수 있음

- 폼 클래스를 이용해서 윈도를 작성할 수 있음

- 라벨 클래스를 이용해서 윈도에 문자열을 표시할 수 있음

- 픽처 박스 클래스를 이용해서 윈도에 이미지를 표시할 수 있음

 

출처) 그림으로 배우는 C#

'C#' 카테고리의 다른 글

[C#] 처리의 제어  (0) 2024.05.24
[C#] 형과 연산자  (0) 2024.05.17
[C#] 첫 걸음  (0) 2024.05.16
[C#] 배열  (0) 2024.05.13
[C#] 변수 및 상수  (0) 2024.05.13