C#초보자 - 제10과: 방법

At the end of this lesson, you should be able to answer the following:

  • What is a method? What is it used for?
  • How do I declare a method? How do I call it?
  • What is a method parameter?
  • What is a return statement?

마지막 수업에서는 C#이 다른 프로그래밍 언어의 함수나 하위 루틴과 같은 방법을 학습합니다.
우리의 프로그램이 점점 커지고 복잡해지면서 우리는 관련 문장을 한데 묶어 코드를 관리하기 쉬운 블록으로 구성할 수 있다.방법은 하나의 임무를 수행하기 위해 호출될 수 있는 문장이다.

메소드 선언 및 호출


우리 첫 번째 프로그램, Hello World로 돌아갑시다.정보를 인쇄하기보다는 ASCII art border를 추가하여 보다 아름답게 만듭니다.
다음은 a로 중복+- 20번의 문자열을 만듭니다.그리고 우리는 이 문자열을 경계로 한다.
// Creates a border like this: +-+-+-+-+-+-
var border = "";
for (int i = 0; i < 20; i++) 
{
    border += "+-";
}

// Prints the message with the border
Console.WriteLine(border);
Console.WriteLine("Hello, World!");
Console.WriteLine(border);
프로그램에서 이 메시지를 다른 시간에 표시하기를 원한다면.이 점을 하려면, 우리는 반드시 끊임없이 이 대사들을 중복해야 한다.더 좋은 방법은 우선 그것들을 ShowMessage라는 방법으로 나누는 것이다.
void ShowMessage()
{
    // ...steps go here!
}
C#에서 메서드를 선언하기 위해 메서드의 반환 유형을 지정하고 메서드의 이름과 괄호를 따릅니다.괄호에는 방법의 주체가 포함되어 있습니다. 이 방법을 호출할 때 실행하기를 원하는 문장입니다.우리는 본 수업 뒤에 되돌아오는 유형을 설명할 것이다.
방법을 설명하면, 메시지를 표시할 때마다 ShowMessage 호출할 수 있습니다.
// Displays the message twice
ShowMessage();
ShowMessage();
C#에서 메서드를 호출하거나 호출하려면 메서드 이름 뒤에 괄호를 사용합니다.방법 호출 자체가 효과적인 문장이다.

메소드 매개변수 및 매개변수


만약 우리가 다른 소식을 표시하려고 한다면, 우리는 여전히 화려한 테두리를 원한다.우리는 사용할 수 없다ShowMessage. 왜냐하면 그것은'안녕하세요, 세계!'라고 말할 수 있기 때문이다.그러나 절차는 기본적으로 같기 때문에 우리는 어떤 방식으로 그것을 다시 사용할 수 있습니까?
우리는 반복해서 조금씩 바꾸는 것이 아니라 매개 변수를 추가해서 우리의 방법을 더욱 통용할 수 있다.방법 매개 변수는 변수로 방법에서 그것을 사용하여 행동을 바꿀 수 있다.
방법 성명에서, 우리는 매개 변수를 원괄호 안에 놓을 것이다.우선, 우리는 매개 변수의 유형을 지정한 다음에 매개 변수의 이름을 지정한다.이것은 우리가 변수를 성명하는 방식과 유사하다.
void ShowMessage(string message)
{
    // Creates a border like this: +-+-+-+-+-+-
    var border = "";
    for (int i = 0; i < 20; i++) 
    {
        border += "+-";
    }

    // Prints the message with the border
    Console.WriteLine(border);
    Console.WriteLine(message);    // The parameter is used here!
    Console.WriteLine(border);
}
메서드를 호출할 때 괄호 안에 값을 입력할 수 있습니다(매개변수라고도 함).이 방법에 대해 매개 변수를 정의하면, 이 매개 변수는 이 매개 변수의 값으로 전송됩니다.
// Display a different message
ShowMessage("Greetings, human!");
// Display another message
ShowMessage("こんにちは、世界!");

하나의 방법에는 여러 개의 매개 변수가 있을 수 있다.예를 들어 우리는 중복될 패턴을 제공함으로써 경계를 변경할 수 있다.다음은 string라는 borderPattern 매개 변수를 추가했습니다.
void ShowMessage(string message, string borderPattern)
{
    // Creates a border
    var border = "";
    for (int i = 0; i < 20; i++) 
    {
        border += borderPattern;    // borderPattern is used here!
    }

    // Prints the message with the border
    Console.WriteLine(border);
    Console.WriteLine(message);    // message is used here!
    Console.WriteLine(border);
}

// Call the ShowMessage method
ShowMessage("Hey, you. You're finally awake.", "->");
우리가 여러 개의 매개 변수 호출 ShowMessage 을 사용할 때, 순서가 매우 중요하다.예를 들어, 만약 우리가 이렇게 한다면, 너는 무슨 일이 일어날지 알아맞힐 수 있니?
ShowMessage("->", "Hey, you. You're finally awake.");

매개 변수의 순서는 매개 변수의 순서와 일치해야 합니다!

명명 매개변수


만약 한 방법이 많은 매개 변수를 받아들인다면, 순서를 추적하기 매우 어렵다.다행히도 C#에서는 메서드에서 매개변수를 전달할 때 매개변수의 이름을 지정할 수 있습니다.이전 프로그램의 17번째 줄을 다음 줄로 바꿉니다.
ShowMessage(borderPattern: "->", message: "Hey, you. You're finally awake.");
먼저 경계 모드를 제공했지만 C# 는 이 값을 borderPattern 매개변수에 지정하는 것을 알고 있습니다.message 매개 변수도 마찬가지다.

옵션 매개변수


우리는 우리의 방법을 더욱 유연하게 한다.그러나, 우리가 ShowMessage 방법을 호출할 때, 우리는 더 이상 단지 하나의 소식만을 제공할 수 없다. 우리는 경계 모델을 포함해야 한다.
만약 우리가 경계 모드를 제공하지 않는다면, 우리는 이 방법을 원시 모드로 묵인하기를 바란다.이를 위해, 매개 변수 성명에서, 우리는 매개 변수에 값을 부여해야 한다.선언의 = "+-" 매개변수 옆에 다음과 같이 borderPattern를 추가합니다.
void ShowMessage(string message, string borderPattern = "+-")
{
    // ...
}


// Call the ShowMessage method
ShowMessage("Hey, you. You're finally awake.");
지금 우리는 다시 ShowMessage로 전화를 걸 수 있습니다. 메시지만 남겨주세요!

메서드 반환 유형


임무를 수행하는 것 외에 방법은 임무가 완성된 후에 값을 되돌릴 수 있다.우리의 방법 ShowMessage 은 우리에게 메시지를 표시하지만, 우리가 사용할 수 있는 값을 제대로 되돌려주지 않는다.이것이 바로 그것의 귀환 유형이 void인 이유다.
int Double(int number)
{
    return number * 2;
}
위에는 값을 되돌려 주는 예시적인 방법이 있다.너는 이 방법의 작용을 알아맞힐 수 있니?Double 방법은 한 유형int의 숫자를 받아들이고 곱하기 2의 숫자를 되돌려주는데 실제로는 그것의 두 배이다.반환된 값의 유형은 int입니다.
우리는 return 키워드를 사용하여 이 방법이 되돌아오는 값을 지정합니다.만약 방법 반환 유형이 void이 아니라면 요구return 문장은 방법의 주체에 나타난다.
필요하면 return 문장 앞에 더 많은 문장을 추가할 수 있습니다. 문장은 방법이 완성되고 표현식 number * 2 으로 되돌아오기 전에 실행됩니다.
이 방법이 하나의 값을 되돌려주거나 주체의 끝에 도달했을 때, 프로그램은 이 방법을 호출한 문장을 되돌려줍니다.
int Double(int number)
{
    Console.WriteLine("Calling the method Double");
    return number * 2;
}

Console.WriteLine(Double(50));
Console.WriteLine("And we're back here!");

다음과 같이 값을 반환하는 방법을 표현식에 사용할 수 있습니다.
var expr = Double(10) + Double(2);
Console.WriteLine(expr); // Prints 24

Questions

True or False:

  1. To declare a method, we specify the return type and method name, followed by square brackets.
  2. The order of the arguments passed in a method must match the order of the parameters.
  3. To make a parameter optional, we mark it with the keyword optional.
  4. A void method cannot be used in expressions.
  5. Console.WriteLine() is a method.

Question

You are a human compiler. Can you find all the errors in this code?


int Add(int x, y)
{
    Console.WriteLine("Adding {x} and {y}");
    var sum = x + y;
}

Console.WriteLine(Add(75, 25);

Question

What is the difference between a method parameter and a method argument?


Challenges

  1. Create a Multiply method similar to the Double method in the lesson. Calling Multiply(10,12) should return 120.
  2. Convert the code in into a method called IsAllowedToDrive. The method should have two parameters, age and hasLicence . The return type should be bool.

좋은 웹페이지 즐겨찾기