C# Basic Tutorial (Method 1/2)

2022. 1. 10. 00:00CSharp/Basic

반응형

개요

메서드는 일련의 문을 포함하는 코드 블록이다. 

C#에서는 실행된 모든 명령이 메서드의 컨텍스트에서 수행된다.


접근한정자 반환값 메소드이름 (전달인자) 

{

}

 

접근한정자

public : 객체 외부에서 접근 가능

protected : 상속한 자식들에서 접근 가능

private : 객체 내부에서만 접근 가능

internal : 같은 assembly 파일에서만 접근 가능

 

반환값

: method 실행 후 caller 쪽으로 전달하는 값

 

메소드이름

: method 를 대표하는 이름

 

전달인자

: 메소드에 전달하여 명령을 처리하도록 하는 input

 

아래 예제를 확인해 보자

HelloWorld();

void HelloWorld()
{
    Console.WriteLine("Hello World!");
}

Hello World! 를 찍는 명령을 method 를 통해 최상위문에 작성해 보았다.

 

최상위문은 dotnet 에서 main 이라는 entry point 를 통해 처리 되는 요소를 변경한 것이다. 

자세한 내용은 아래를 참조하자 

https://docs.microsoft.com/ko-kr/dotnet/csharp/whats-new/tutorials/top-level-statements

 

최상위 문 - C# 자습서

이 자습서에서는 아이디어를 탐색하는 동안 최상위 문을 사용하여 개념을 실험하고 증명하는 방법을 보여 줍니다.

docs.microsoft.com

 

코드를 보면 public 같은 내용이 없다. 최상위 문에서는 이러한 값을 지정할 수 없다. 

나중에 알아볼 class 에서 해당 접근제어문에 관해 좀더 자세히 알아보자

 

반환값, parameter

일단 아래 코드를 보자. 코드 설명은 주석에 있다. 

/// <summary>
/// "Hello World!" 를 return 하는 method
/// </summary>
string HelloWorld()
{
    return "Hello World!";
}
Console.WriteLine(HelloWorld()); // 호출 및 Console 에 Print

/// <summary>
/// parameter 인 message 에 "Hello World!" 를 전달 하고
/// return 하는 method
/// </summary>
string HelloWorldParameter(string message)
{
    return $"{message}";
}
Console.WriteLine(HelloWorldParameter("Hello World!"));  // 호출 및 Console 에 Print

최상위 문의 구조

위 최상위 문은 사실 아래와 같은 형태이다. 우리눈에 안보일 뿐이다.

public void Run()
{
  /// <summary>
  /// "Hello World!" 를 return 하는 구문
  /// </summary>
  string HelloWorld()
  {
  	return "Hello World!";
  }
  Console.WriteLine(HelloWorld()); // 호출 및 Console 에 Print

  /// <summary>
  /// parameter 인 message 에 "Hello World!" 를 전달
  /// </summary>
  string HelloWorldParameter(string message)
  {
 	 return $"{message}";
  }
  Console.WriteLine(HelloWorldParameter("Hello World!"));  // 호출 및 Console 에 Print
}

위 Method Run() 을 보면 Method 안에 다시 Method가 선언되어 있다. 이런 것을 로컬 함수(Method) 라고 한다. 

최상위문은 위와 같은 형태로 구현되어 있고 로컬 함수 를 감싸고 있는 Run()  이 생략되어 있는 것이다. 

 

참조를 통해 값 전달

/// <summary>
/// parameter 인 message 에 참조(ref)를 통해"Hello World!" 를 전달
/// </summary>
string HelloWorldParameterByRef(ref string message)
{
    message = message.ToUpper();
    return $"{message}";
}

var helloWorld = "Hello World!";
Console.WriteLine(HelloWorldParameterByRef(ref helloWorld));  // helloWorld 변수의 참조를 전달
Console.WriteLine(helloWorld); // helloWorld 변수의 변화를 확인
// HelloWorldParameterByRef method 에서
// 참조로 전달한 helloWorld 변수를 수정하여
// helloWorld 원본도 변경되었다.

 

관련영상

https://youtu.be/eLq3OS5FSQc

반응형

'CSharp > Basic' 카테고리의 다른 글

C# Basic Tutorial (Class - 생성자)  (0) 2022.01.12
C# Basic Tutorial (Method 2/2)  (0) 2022.01.11
C# Basic Tutorial (Arrays)  (0) 2022.01.09
C# Basic Tutorial (Loop)  (0) 2022.01.08
C# Basic Tutorial (Condition)  (0) 2022.01.07