2019. 2. 3. 18:02


1. C#의 기본골격

Ctrl+Shift+N 키를 누르거나 [파일->프로젝트]를 클릭하셔서  C#을 클릭하시면 위와같은 화면이 나오는데 저는 익스프레스버전이기때문에 위와같은 화면이 뜹니다. 여러분들의 화면이랑 좀 다릅니다.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace HelloWorld

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("안녕하세요"); //콘솔창에 문자열 출력

        }

    }

}

이번장은 역시나 당연하다고 지나칠수 있는부분을 (매우 중요하다고 생각됩니다)

한번 살펴보겠씁니다.



   1. Main 메서드

       - 오직 하나의 진입점만 허용(즉 프로그램은 하나의 Main 메서드만 가짐!!!!)

       - 즉, 프로그램의 진입점(시작점) 역할을 하는 함수로써 닷넷 런타임에 의해 호출됩니다.

       - 하나의 응용프로그램에는 하나의 Main 메서드만 가능합니다.


       > 대문자 M? : 반드시 대문자여야 합니다

          (C#은 대소문자를 구분하지요? 즉, 소문자 a, 대문자 A는 다른겁니다)

       > static 의 의미는? : 사전적으로는 정적이라는 해석입니다.


C#에서는 전역변수가 존재 하지 않습니다!!,

  왜냐하면 모든 변수나 메서드는 클래스의 소속이 되야하기때문입니다.

  그런데 전역변수가 있다고 치면, 전역변수는 프로그램의 시작할때부터 자동으로 생성되어,

  프로그램이 끝날때까지 계속해서

  메모리에 존재하기때문에, 전역변수나 전역함수등을 쓴다면, 메모리 소비도 많아지고,

  잘못 사용시에는 프로그램에 뒤죽박죽 엉키는 [일명 : 스파게티 소스] 가 되어 버립니다. 

  그와 함께 static 이 변수나 메소드 앞에 붙는다면?? 마찬가지로 프로그램이

  시작할때 자동으로 생성되어 프로그램이 끝날때까지 없어지지 않습니다.

  즉...전역변수와 비슷한 기능을 합니다.

   마찬가지로 Main 메소드는 무조건 제일 먼저 실행되야 함

   ...제일 먼저 메모리에 로딩이 되어하므로, static을 반드시 명시해주셔야 합니다.



   2. namespace

       - 프로그램 요소를 논리적으로 구분하게 하는 키워드입니다.        

       - 여기서는 helloworld 로 지정되었는데, 

          지정하지 않게 되면, 기본 네임스페이스로 자동으로 지정되게 됩니다.

       - 논리적으로 프로그램 구성요소를 그룹화 시킴으로써 이름 충돌을 자동으로 방지하고,

         의미있게 부여/구분하여  공용 어셈블리의 구성을 보다 직관적으로 관리할수 있겠습니다.

         밑에 그림 참조하세요


         참조란 것은 외부에 정의된 어셈블리를 참조하는것입니다^^
         우린 보통 System; 만 쓰지요? 그렇기때문에 갖다쓸거를 텍스트편집기에다가
         using System;이라고 적지요
         수업시간에 들은적 있지요?
         mscorlib.dll 이라는 에셈블리에 정의된 System 네임스페이스 하위의 Console 클래스를 이용
         해서 우린 Console 클래스를 쓰는것이지요^^(mscorlib.dll : 닷넷 핵심 어셈블리입니다)

   3. using 
        -  참조한 어셈블리의 네임스페이스를 한번만 지정하여 코드에서 매번 네임스페이스를
           지정할필요없이 지정하는것입니다
           만약에 한번만 지정할수 없다면 우린
           System.Console.WriteLine("어저꾸저쩌구"); 라고 매번 귀찮게 다 입력을 해야하지요
        - 또 한가지 : 네임스페이스의 별칭을 부여할수 있는데 이건 지난번에 설명했으므로 생략합니다.


   4. 기본클래스
        - 우리가 기본적으로 c#프로젝트를 만들면 기본 클래스는 program 이라고
          디폴트(기본값/자동값)으로 설정되어집니다.
          물론 프로그래머가 다시 수정이 가능합니다. 정하기 나름이지요

이것이 대략적인 기본구조입니다. 
"뭐가 이리 시시해~"라고 할수 있지만, 매우 중요해서 어떻게 보면 전에 했던 내용을
다시 짜집기해서 정리했다는 개념일수도 있네요.
그리고 사실 static이란것은 하나의 단원이 될수도 있는데, 간단히 소개했습니다.


'프로그래밍 > C#' 카테고리의 다른 글

C#-10. 클래스의 정적멤버  (0) 2019.02.06
C#-9. 생성자  (0) 2019.02.05
C#-7. 객체지향과 클래스  (0) 2019.01.31
C#-6. 데이타 타입  (0) 2019.01.29
C#-4. 컴파일러와 dll파일  (0) 2019.01.25
Posted by 토실토실천재