이번 강의 목표

컴파일

컴파일러

C#컴파일러

visual studio 구성

실습

namespace Hello { class MainApp { //프로그램 실행이 시작되는 곳 static void Main(string[] args)//args = arguments 라는 뜻 { if (args.Length == 0) { Console.WriteLine(“사용법 : Hello.exe<이름>"); return; } WriteLine("Hello , {0}!",args[0]); //Hello, World를 프롬프트에 출력 } } }

- 실행 : 프로그램을 실행하려면 실행파일을 생성해야한다 
- 빌드 > 솔루션 빌드 : 경로에 빌드된 결과물이 저장된다

1>—— 빌드 시작: 프로젝트: Hello, 구성: Debug Any CPU —— 1>Hello -> C:\Users\my\source\repos\Hello\Hello\bin\Debug\netcoreapp3.1\Hello.dll ========== 빌드: 성공 1, 실패 0, 최신 0, 생략 0 ==========

- 해당 디렉토리로 이동하기 위해 솔루션 탐색기에서 Hello 프로젝트항목을 선택하고 우클릭해서 '파일 탐색기에서 폴더 열기'
- 명령 프롬프트 창열기 :  window + r키 +q키 -> cmd입력 -> 파일탐색기 주소 복사 or cd 하고 끌어 당기기
```python
C:\Users\my>cd C:\Users\my\source\repos\Hello\Hello

2022-06-25 오후 07:47

. 2022-06-25 오후 07:47 .. 2022-06-25 오후 05:59 bin 2022-06-25 오후 05:59 178 Hello.csproj 2022-06-25 오후 07:47 498 MainApp.cs 2022-06-25 오후 05:59 obj 2개 파일 676 바이트 4개 디렉터리 26,919,305,216 바이트 남음

C:\Users\my\source\repos\Hello\Hello>

- 파일 열기 : 강의에는 net5.0 으로 되어있는데 나는 netcoreapp3.1폴더로 되어있어서 그렇게 했다
```python
C:\Users\my\source\repos\Hello\Hello>cd bin

C:\Users\my\source\repos\Hello\Hello\bin>cd Debug

C:\Users\my\source\repos\Hello\Hello\bin\Debug>cd net5.0
지정된 경로를 찾을 수 없습니다.

C:\Users\my\source\repos\Hello\Hello\bin\Debug>cd netcoreapp3.1

C:\Users\my\source\repos\Hello\Hello\bin\Debug\netcoreapp3.1>Hello.exe
사용법 : Hello.exe<이름>

C:\Users\my\source\repos\Hello\Hello\bin\Debug\netcoreapp3.1>Hello 꽁주킴
Hello , 꽁주킴!

실행 코드 분석

using System;
using static System.Console;

namespace Hello
{
    class MainApp
    {
        //프로그램 실행이 시작되는 곳
        static void Main(string[] args)//args  = arguments 라는 뜻
        {
            if (args.Length == 0)
            {
                Console.WriteLine("사용법 : Hello.exe<이름>");
                return;
            }
            WriteLine("Hello , {0}!",args[0]); //Hello, World를 프롬프트에 출력
        }
    }
}

질문

Q. using System 이랑 using static System.Console의 차이?

A. C# 6.0에서는 using static 클래스명을 써 준다면, 해당 C# 파일 내에서는 해당 클래스명 없이 메서드를 직접 사용할 수 있게 하였다. 예를 들어 아래 예제에서 처럼 처음 System.Console 클래스를 using static 과 함께 지정한 후에는 본문에서 Console.WriteLine() 대신 WriteLine()을 직접 사용할 수 있다. 출처