Inflearn brand logo image

인프런 커뮤니티 질문&답변

Qwe Asd님의 프로필 이미지
Qwe Asd

작성한 질문수

C# 프로그래밍 기초부터 실전 활용까지

클래스 - 메서드

메소드 호출이 되는이유?

해결된 질문

작성

·

44

·

수정됨

0

Car car = new Car();

car.ShowInFormation();

 

class Car

{

public string brand;

internal string model;

string color;

 

Car car = new Car();

car.ShowInFormation();

class Car

{

public string brand;

internal string model;

string color;

public Car()

{

brand = "현대";

model = "소나타";

color = "검정";

}

 

public void ShowInFormation()

{

Console.WriteLine($"브랜드는 {brand}");

Console.WriteLine($"모델은는 {model}");

Console.WriteLine($"색깔은는 {color}");

}

}

 

2분10초 쯤

왜 car.ShowInFormation은 호출이 되고

Console.WriteLine(car.ShowInFormation()라고하면 호출이 안되죠?

동영상에는 이유가 안 나오는거 같아요

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. Qwe Asd님.

질문해주신 내용과 관련하여, car.ShowInFormation() 메소드 호출과 Console.WriteLine(car.ShowInFormation()) 호출 간의 차이에 대해 설명드리겠습니다.

  1. 메소드 호출 차이:
    • car.ShowInFormation(); 는 메소드가 호출되지만, 반환 값을 사용하는 곳이 없기 때문에 단순히 메소드를 수행하는 것에 불과합니다. 이 예시에서는 ShowInFormation이라는 메소드는 실행되지만 그 결과나 출력을 따로 처리하지 않고 있습니다.
    • Console.WriteLine(car.ShowInFormation());ShowInFormation 메소드의 결과 값을 출력하는 역할을 합니다. 만약 ShowInFormation 메소드가 void 타입이라면, 반환값이 없기 때문에 이를 Console.WriteLine에 직접 사용할 수 없습니다. 따라서 오류가 발생합니다.

그렇기 때문에 ShowInFormation 메소드가 반환값이 있는 메소드라면 Console.WriteLine을 이용해 출력을 할 수 있고, void 형식인 경우에는 반환값이 없기 때문에 직접 출력이 불가능합니다. 따라서 Console.WriteLine을 사용하려면 ShowInFormation 메소드가 결과를 반환하는 방식으로 구현되어 있어야 합니다.

관련하여 메소드의 반환값 사용에 대한 상세 내용은 다음의 게시글을 참고해 보시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Qwe Asd님의 프로필 이미지
Qwe Asd

작성한 질문수

질문하기