C#
최신 C# 기능
C# 11
C# 11 새기능
C# 11: Raw String Literal
C# 11: 문자열 내삽 복수라인
C# 11: u8 접미어
C# 11: Generic Math 지원
C# 11: Generic Attribute
C# 11: 리스트 패턴
C# 11: 파일 로컬 타입
C# 11: required modifier
C# 11: Auto-default struct
C# 11: ReadOnlySpan 패턴 매칭
C# 11: 확장된 nameof 범위
C# 11: nint, nuint
C# 11: ref 필드
C# 11: 소문자 타입명 경고
C# 11: 향상된 method group 변환
C# 10
VS 2022 설치
C# 10 global using
C# 10 File-scoped Namespace
C# 10 향상된 문자열 내삽
C# 10 향상된 람다식 유추
C# 10 struct 기능 향상
C# 10 record struct
C# 10 확장된 속성패턴
C# 10 향상된 명료한 할당
C# 10 Destructor 기능 개선
C# 9.0
C# 9 레코드 타입
C# 9 init accessor
C# 9 최상위 프로그램
C# 9 향상된 패턴 매칭
C# 9 향상된 Target Typing
C# 9 공변 리턴 타입
C# 9 Native Int 타입
C# 8.0
C# 8 디폴트 인터페이스 멤버
C# 8 패턴 매칭
C# 8 Nullable Reference Type
C# 8 인덱싱과 슬라이싱
C# 8 비동기 스트림
C# 8 using 선언
C# 8 널 병합 할당자
C# 8 구조체 읽기 전용 멤버
C# 8 기타 기능들
C# 7.0
C# 7.0 새기능
C# 7.0 패턴 매칭
C# 7.0 튜플
C# 7.0 로컬 함수
C# 7.0 out 파라미터
C# 7.0 리터럴 표현
C# 7.0 Deconstructor
C# 7.0 ref return
C# 7.0 async 리턴타입
C# 7.0 Expression-bodied
C# 7.0 throw expression
C# 6.0
C# 6.0 새기능
C# 6.0 널 조건 연산자
C# 6.0 문자열 내삽
C# 6.0 Dictionary초기자
C# 6.0 nameof 연산자
C# 6.0 using static문
C# 6.0 catch블럭 await
C# 6.0 Exception 필터
C# 6.0 자동 속성 초기자
C# 6.0 읽기전용 자동 속성
C# 6.0 Expression-bodied

C#으로 이해하는 자료구조
C# 프로그래밍 기초 실습 전자책
C# 9.0: 최상위 프로그램 (Top-level Program)

C# 프로그램은 Main() 정적 메서드에서부터 프로그램을 시작하며, C# 프로젝트를 생성하면 항상 이 Main() 메서드를 템플릿에서 자동으로 생성해 준다. 프로그래밍에서 이를 보통 엔트리 포인트(Entry point)라 부른다. 프로그래밍을 시작하는 초보자의 경우 Main() 엔트리 포인트 부분이 어려울 수 있기 때문에, C# 9 에서 이러한 제약을 없애고 바로 C# 문장들을 사용할 수 있는 기능을 제공하였다. 이를 최상위 프로그램(Top-level Program)이 부르는데, C# 프로젝트에서 (어떤 파일이든 상관없이) 하나의 C# 파일에만 적용할 수 있고, 만약 존재한다면 이 최상위 코드부터 프로그램이 시작되게 된다. 만약에 Main() 메서드와 최상위 프로그램이 함께 존재한다면, C# 컴파일러는 최상위 프로그램 때문에 Main 메서드를 무시한다는 경고 메시지를 내면서 최상위 프로그램을 실행하게 된다.

예제

// 최상위 프로그램
using System;

int a = 100;
int b = 200;
int c = a + b;
Console.WriteLine(c);



C# 9.0: 최상위 프로그램에서 로컬함수 사용하기

최상위 프로그램에서 로컬함수를 정의하여 사용할 수 있는데, 이 로컬함수는 최상위 프로그램 안에서만 호출되며 최상위 밖에서는 사용할 수 없다. 최상위 프로그램은 또한 명령인자를 받아들일 수 있는데, 이때는 args 라는 최상위에서 인식되는 특별한 변수를 사용하면 된다. 아래 예제는 최상위 프로그램에서 2개의 숫자 명령인자를 받아들여 로컬함수를 통해 이를 더하는 샘플 코드이다. 실행 프로그램명을 test.exe 라고 했을 때, test 100 200 처럼 명령인자를 전달하여 프로그램을 실행하는 것을 가정한 것이다.

예제

// 프로그래명이 test.exe 일 때
//   test.exe 100 200
// 와 같이 호출한다고 가정
int a = int.Parse(args[0]); // 100
int b = int.Parse(args[1]); // 200

// 로컬함수 사용
int c = Calculate(a, b);
System.Console.WriteLine(c);

// 로컬함수 정의
int Calculate(int x, int y)
{
    int k = x + y;
    return k;
}



본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.