06
25

cf. App, 펌웨어 

cf. Code,Data, BSS

 

1) 닷넷 프레임워크(.NET Framework)

닷넷 프레임워크는 2002년에 마이크로소프트에서 발표한 응용 프로그램 개발 환경으로서 프로세스 가상 머신에 속한다. 닷넷 프레임워크를 설치하면 가상 머신 역할을 하는 CLR(Common Language Runtime) 구성요소가 실행될 수 있는 환경이 윈도우 운영체제에 마련된다. 

 

P.7 그림 1.1

 

 

C, C++로 만들어진 App은 속도가 빠르지만 다른 OS에 호환되지 않는다.

 

1.1) 공통 중간 언어

자바의 VM에서는 중간 언어를 특별히 바이트코드(Bytecode)라고 한다. 마찬가지로 닷넷의 CLR에서는 이를 CIL(Common Intermediate Language)이라고 하며 보통은 줄여서 IL 코드, 또는 MSIL 코드라고 한다. 

 

1.2) 공용 타입 시스템(CTS : Common Type System)

공용 타입 시스템이란 닷넷 호환 언어가 지켜야 할 타입(Type)의 표준 규격을 정의한 것이다.

 

1.3) 메타데이터(Metadata)

메타데이터는 데이터를 위한 데이터로 그림을 예시로 들자면 너비, 높이, 해당도 등의 데이터 등 원본 사진 데이터를 위한 데이터가 메타데이터이다.

 

p.11 필기 그림

 

1.4) 어셈블리

C#으로 프로그램을 만드는 경우 EXE, DLL 파일을 만들게 된다. 닷넷에서는 이런 실행 파일을 어셈블리(Assembly)라고 한다. 기계어와 1:1 대응되는 프로그래밍 언어인 어셈블리와 이름이 같으므로 혼동할 수 있지만 닷넷 프로그래밍에서 특별한 언급이 없다면 어셈블리는 실행파일(EXE, DLL)을 의미한다.

 

2) C# 복습

2.1) C# 기본 구조 및 콘솔 창 출력, Main 메서드에 인자 값 입력하기

// 프롤로그 시작 --------------------
using System;

namespace _20200625_001
// 프롤로그 끝 ----------------------
{
    class Program // 클래스
    {
        /// <summary>
        /// Main 메서드, Entry Point 
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args) // Main 메서드의 인자/인수/매개변수 : 1개(이름: args)
        {
            Console.WriteLine("Hello World!");
            Console.WriteLine(args[0]);
            Console.WriteLine(args[1]);
        }
    }
}

 

예제 실행 화면

 

2.2) 숫자 포맷 캐릭터

캐릭터 의미
C  통화 표시를 함께 사용
D  10진수 정수로 표현
E  지수(exponential)로 표현
F  소수점 자리수를 정해서 표현
G  정수형이나 소수를 일반적으로 표현
N  콤마(,)가 나타나게 표현
X  16진수로 표현
Console.WriteLine("{0:C}", 100); // 통화
Console.WriteLine("{0:D}", 100); // 10진수
Console.WriteLine("{0:E}", 100); // 지수로 표현
Console.WriteLine("{0:F}", 100); // 소수점 자리수를 정해서 표현
Console.WriteLine("{0:G}", 100); // 정수형이나 소수를 일반적으로 표현
Console.WriteLine("{0:N}", 100); // 콤마(,)가 나타나게 표현
Console.WriteLine("{0:X}", 100); // 16진수로 표현

 

예제 실행 화면

 

2.3) 콘솔창에서 입력 받기, 출력

//inValue 변수로 문자열을 입력 받아서 출력하는 소스 작성
string inValue = Console.ReadLine();
Console.WriteLine($"invalue : {inValue}");

 

예제 실행 화면

 

2.4) enum

C#의 키워드 enum은 열거형 상수(constant)를 표현하기 위한 것으로 이를 이용하면 상수 숫자들보다 의미있는 단어들로 표현할 수 있어서 프로그램을 읽기 쉽게 해준다. enum의 각 요소는 별도의 지정없이는 첫번째 요소가 0, 두번째 요소가 1, 세번째 요소가 2 등과 같이 1씩 증가된 값들을 할당받는다. 물론, 개발자가 임의로 의미있는 번호를 지정해 줄 수도 있다. enum문은 클래스 안이나 네임스페이스 내에서만 선언될 수 있다. 즉, 메서드 안이나 속성 안에서는 선언되지 않는다. 또한, enum 타입은 숫자형 타입과 호환가능하다. enum 타입변수는 enum 리터럴갑소가 서로 비교할 수 있다.

enum Week
{
	Mon = 100,
	Tue,
	Wed,
	Thu = 200,
	Fri,
	Sat,
	Sun
}

class Program // 클래스
{
	static void Main(string[] args) // Main 메서드의 인자/인수/매개변수 : 1개(이름: args)
	{
		int INumber = 0x12345678;
		float FNumber = 41.626f;

		Week GoodDay;
		Week ToDay;

		GoodDay = Week.Fri;
		ToDay = Week.Thu;
		Console.WriteLine($"GoodDay : {GoodDay}\nToDay : {ToDay}");
		Console.WriteLine($"GoodDay Index : {(int)GoodDay}\nToDay Index : {(int)ToDay}");

		Console.WriteLine($"{(int)Week.Mon}");
		Console.WriteLine($"{(int)Week.Tue}");
		Console.WriteLine($"{(int)Week.Wed}");
		Console.WriteLine($"{(int)Week.Thu}");
		Console.WriteLine($"{(int)Week.Fri}");
		Console.WriteLine($"{(int)Week.Sat}");
		Console.WriteLine($"{(int)Week.Sun}");
	}
}

 

예제 실행 화면

 

cf. 부동소수점

 

 

2.5) 구조체

struct Book
{
	public string Name;
	public int Price;

	static Book()
	{
		Console.WriteLine("test");
	}

	public void Test()
	{
		Console.WriteLine("book method");
	}
}

class Program
{
	static void Main(string[] args)
	{
		Book abook;
		abook.Name = "test";
		abook.Price = 100;
		abook.Test();
	}
}

 

예제 실행 화면

 

'스마트팩토리 > C#' 카테고리의 다른 글

15. 복습  (0) 2020.06.29
14. 복습  (0) 2020.06.26
12. 클래스 간의 형변환, 중첩 클래스, 추상 클래스, 델리게이트  (0) 2020.06.04
11. 다형성  (0) 2020.06.03
10. Object, Array, this, base, 다형성  (0) 2020.06.02
COMMENT