C#

C# 메인 클래스 | C# Main Method

DragonTory 2022. 9. 4. 16:47
반응형

C# 메인 클래스

1
2
3
4
5
6
7
8
9
10
11
12
using System;
 
namespace FirstProject01
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}
cs

 

지난번에  만든 콘솔 프로그램의 Program.cs 파일에 생성된 메인 클래스 입니다.

C#의 코드 파일 확장자는 .cs 로 기존 C++와 .h와 같은 해더 파일이 필요 없이 선언과 함께 본문을 작성 하면 됩니다. 

 

using System;

: 이 부분은 .Net 에서 지원 하는 네임스페이스(namespace)를 사용 하겠다고 알리는 부분입니다. 

이 using System을 사용 하지 않으면 System.Console.WriteLine 처럼 클래스가 위치하고 있는 전체 경로를 사용 해서 코드를 작성 해야 합니다. 

자주 사용 되고 반복적으로 사용 되는 클래스들은 using를 사용 함으로써 생략 할 수 있습니다. 

namespace FirstProject01

: FirstProject01라는 namespace를 정의 하는 부분으로 namepace는 여러 클래스들을 하나의 그룹으로 묶어서 관리 하고 사용 하겠다고 선언 하는 것 입니다. 

프로그램 전체를 하나의 네임스페이스로 관리 할 수도 있고 기능별로 구분 해서 사용 할 수도 있습니다. 

namespace System.IO
namespace System.Runtime.CompilerServices
namespace System.Runtime.Versioning
namespace System.Text

처럼 하위 네임스페이스 구조로 사용 할 수도 있습니다. 

class Program

: C#은 객체 지향 프로그래밍(OOP, Object Oriented Programming)언어로 기본적으로 객체를 표현 하기 위해 class라는 키워드를 사용 합니다. 

OOP에서 객체는 어떤 상태를 가지고 있고 어떤 행동들을 하는지로 구성 되어 지는데

class에 이 상태에 해당하는 것을 변수로 필드(Field)라고 표현 하고 행동에 해당하는 것은 메소드(Method)로 표현 합니다. 

1
2
3
4
5
6
7
8
9
public class Person    // class
{
    public string Name;    // Field
 
    public void PrintName()    // Method
    {
        Console.WriteLine(Name);
    }
}
cs

 

class 키워드 앞에 internal / public 이런 것들은 이 클래스를 외부에 접근 가능 한지 여부를 제한 하는 키워드 입니다. 

클래스 / 필드 / 메소드 를 정의 할 때 앞에 이런 제한 접근자를 표시 해서 사용을 제한 할 수 있습니다. 

 

static void Main(string[] args)

: Main 메소드 입니다.

이 Main은 프로그램이 실행 될 때 제일 처음 실행 되는 진입점입니다. 

Main 메소드는 정적 메소드(Static Method)로 선언 되어야 합니다. 

static은 클래스의 객체를 생성 하지 않고도 바로 실행 할 수 있게 해줍니다. 

 

Console.WriteLine("Hello, World!");

: Console.WriteLine은 콘솔 창에 한줄 메시지를 출력 해주는 메소드로 기본 예제에서는 Hello World!를 출려 해 줍니다. 

 

이 처럼 C#의 기본 구조는 일반적으로 

  using ... ( 유징 )

  class ... ( 클래스 )

  {

      Fields (Variables) ... ( 필드, 변수)

      Methods ... ( 메소드 )

      {

           Variables .... ( 변수 )

           Statements ... (구문, 동작)

       }

}

으로 되어 있습니다. 

 

 

반응형

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

C# ?. 와 ?[] 와 ?? 그리고 ??= 연산자 로 코드를 간결하게.  (0) 2022.11.16
C# Flag 속성 사용 | Enum Flag | FlagsAttribute  (0) 2022.09.21
C# 설치 하기  (0) 2022.08.30
C# 소개  (0) 2022.08.30
C# List<T> Find 함수 사용법  (1) 2021.04.22