[C#] 공식문서 학습하기 1 : ~프로그램 구조

Sean·2024년 9월 20일
0

C# 학습

목록 보기
1/5

참고 자료: MS Document

  • C#이 생각보다 자료가 많이 없어서 그냥 공식문서 보고 정리하려고 한다.
    일단은 공식문서상의 구조를 따라가려고 하는데 내용은 내 맘대로 써질 예정
  • 본질이 iOS 개발자라 많이 비교하면서 학습을 진행할 예정이다.
    - @>--- 이런 기호와 함께 '기울임', '작게' 표시 되면 개인적인 생각이다.
  • 당연 이건 다른 언어를 했던 사람들이 C# 공부시 그나마 조금 편하라고 만들어 보는거지 아예 코드 짜는 사람이 처음이라면 이해 안될 수 있는다.
  • 이해 안되는건 뒤에 나올 내용이 앞에 나와서 그러는거니까 첨보는 단어면 일단 넘어가면 뒤에 다시 나온다.

프로그램 구조

@>--- 둘러보기가 있었는데 과감히 Skip

1. C# 프로그램의 일반적인 구조체

  • 아주 아주 기본적인 구조
using System;

namespace LearnMSDoc
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

코드 분석

  • 위 예제의 코드를 한 줄 한 줄 봐보자
using System;
  1. 해당 네임스페이스를 사용하는것은 System 네임스페이스를 포함시기키 위한 선언이다.
    사용하게 되면 System 내부의 클래스나 메서드를 사용하게 되는데 여기선 일단 아래 코드와 연관이 있다.
// 사용시
Console.WriteLine("Hello World!");
    
// 미사용시
System.Console.WriteLine("Hello World!");

@>--- import UIKit 생각하면 될듯

  1. 그럼 겸사겸사 아래 구문에 대한 해석도 완료된다.
  • LearnMSDoc 네임스페스 안의 Program 클래스의 Main을 호출하면 콘솔이 찍힌다.
    @>--- 진입접이니 뭐니 하는 문제는 그 다음 이야기이다.***
namespace LearnMSDoc
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
  1. static void Main(string[] args) 이 구문에 대해서 알아보자
  • C# 프로그램의 진입점으로 해당 함수를 사용하게 되는데 이제 프로그램이 가장 먼저 실행되는 C#에서의 시작이다.

    1. 선언: static
      • 정적 메서드 표시
      • 새 인스턴스 생성 없이 호출이 가능 해야 하니 Static 선언을 함
    2. 반환값: void
      • 반환은 없다.
    3. 매개변수: string[] args
      • 명령줄 인수를 받는건데 외부에서 전달된거 받는건데 이건 나중에 쓸떄나 설명하는걸로
  • C# 내에는 하나의 진입점만 있을 수 있으므로 Main 메서드가 2이상 있는 경우 진입점으로 사용할 메서드를 따로 지정을 해야 한다.
    @>--- 이렇게 까지는 딥하게 안할거 같으니 일단 넘어가자.

  • 근데 Main을 안쓰고도 그냥 파일의 최상위 문을 진입점으로 사용할 수 있다.
    @>--- 그냥 Main쓰는걸로..

  • 당연하게도 Main의 생성방법은 저게 다가 아니다.

static void Main() { }
static int Main() { }
static void Main(string[] args) { }
static int Main(string[] args) { }
static async Task Main() { }
static async Task<int> Main() { }
static async Task Main(string[] args) { }
static async Task<int> Main(string[] args) { }

기본 메서드

  • 이에 대한 조금 deep 한 설명과 사용방법은 해당 링크를 참조 할것
profile
"잘 할 수 있을까?"를 고민하기보단 재밌어 보이는건 일단 하고, 잘하기 위해 그냥 계속합니다.

0개의 댓글