2022. 1. 10. 00:00ㆍCSharp/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 원본도 변경되었다.
관련영상
'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 |