강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hjloquens200390
hjloquens200390

câu hỏi đã được viết

[Phát triển game MMORPG với C# và Unity] Part3: Unity Engine

Trình quản lý giao diện người dùng số 2

질문1. base.Init() 컴파일 에러가 발생합니다

Viết

·

730

·

Đã chỉnh sửa

0

메시지: CS0205 추상 기본 멤버를 호출할 수 없습니다
https://learn.microsoft.com/ko-kr/dotnet/csharp/misc/cs0205

원인 추정: 2023. 01. 05 이후 abstract 메서드 본문을 호출하는 시도를 문법적으로 중단

(abstract 는 메서드 껍데기만 동일하게 가져가는 것을 의도로 할 때만 사용 가능하게끔 하고, base 를 호출하며 사용할 때는 virtual 를 쓰도록 강제로 권장

 

안 좋은 대안: Start() 실행 순서 관리를 설정에서 직접 관리. '편집 -> 프로젝트 설정 -> 스크립트 실행 순서로 이동하여 스크립트의 실행 순서를 설정'

대체 시도: UI_Base 의 Init() 를 abstract 대신 virtual 로 변경

 

질문 요지: virtual 로 변경해도 문제가 없을까요?

c#C#unity

Câu trả lời 3

0

가상메서드로 변경하면 오류가 해결되는 이유는

기본클래스에서 정의해놓은 가상메서드를

파생클래스에서 재정의 및 기능의 확장을하여

사용할 수 있기 때문에

Base.Init()으로 기본클래스에 접근이 가능합니다

맞나요?ㅎㅎ;;

0

추상메서드 는 메서드의 선언만 해놓고

파생클래스에서 정의를 해주어야하는대

파생클래스에서 Base.Init()으로

구현되지않은 추상메서드에

접근하려해서 오류입니다.!

맞나요?ㅎㅎ;;

0

Rookiss님의 프로필 이미지
Rookiss
Người chia sẻ kiến thức

네 virtual로 변경해도 전혀 상관 없습니다!

Hình ảnh hồ sơ của hjloquens200390
hjloquens200390

câu hỏi đã được viết

Đặt câu hỏi