C# 제어가 현재 메서드를 벗어나기 전에 'xxx' out 매개 변수를 할당해야 합니다.



d:\unityStudy\Part3_6_GUI\Assets\Script\GameDataManager.cs(14,14): Error CS0177: 제어가 현재 메서드를 벗어나기 전에 'gameData' out 매개 변수를 할당해야 합니다. (CS0177) (Assembly-CSharp)

d:\unityStudy\Part3_6_GUI\Assets\Script\GameDataManager.cs(3,3): Error CS1502: 'GameDataManager.FindDataTable(string, out IGameData)'에 가장 일치하는 오버로드된 메서드에 잘못된 인수가 있습니다. (CS1502) (Assembly-CSharp)

d:\unityStudy\Part3_6_GUI\Assets\Script\GameDataManager.cs(25,25): Error CS1620: '2' 인수는 'out' 키워드를 사용하여 전달해야 합니다. (CS1620) (Assembly-CSharp)

 위 로그와 같은 에러가 발생하더군요. C++에서는 인수를 참조등으로 사용하는데 있어 &이나 *를 사용하지만 C#에서는 out, ref 키워드를 사용하네요. 해결은 간단합니다. 함수 호출하는 부분과 함수 정의 부분 모두 out이나 ref를 명시적으로 사용해야 합니다. C#은 명시적인걸 강조하는 모양입니다.

 그리고 out으로 된 것은 꼭 해당 변수에 값이 할당되어야 합니다. C++ 처럼 그냥 지나치지는 않는군요.

댓글

댓글 쓰기

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.