강의

멘토링

커뮤니티

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

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

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

Phát triển trò chơi Unity bắt đầu từ đầu

sắp xếp

Dictionary 관련 메소드 사용 질문 드립니다.

Đã giải quyết

Viết

·

58

0

  • 에러가 발생하는 경우

     

public Dictionary<string, int> c = new Dictionary<string, int>();

c.Add("A", 5);
  • 에러가 발생하지 않는 경우

     

public Dictionary<string, int> c = new Dictionary<string, int>();

private void Start()
{
    c.Add("A", 5);
}

왜 Start() 메서드 안에 있으면 에러가 발생하지 않고 dictionary 선언 후 바로 Add를 하면 에러가 발생하는지 궁금합니다.

image.png

 

C#unitycollider.csvjson-parsing

Câu trả lời 1

1

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

안녕하세요 🙂
C#에서는 클래스의 필드 선언부에서 메서드 호출(문장 실행)을 직접적으로 할 수 없습니다.

c.Add("A", 5);는 명령문이기 때문에 클래스 바디에서 직접 실행할 수 없습니다.

클래스 바디에서 실행할 수 있는 것은 필드 초기화 뿐입니다.

Start는 Unity의 라이프사이클 메서드이며, 게임 오브젝트가 활성화될 때 호출합니다.
이 시점에는 c라는 딕셔너리가 정확히 new Dictionary<string, int>();
로 초기화가 되어있기 때문에 .Add()가 가능해집니다.

public Dictionary<string, int> c = new Dictionary<string, int>()

{

{ "A", 5 }

};
필드 선언시에 데이터를 함께 넣고 싶으시다면 초기화 구문을 함께 사용하시면 됩니다.

Lucas님의 프로필 이미지
Lucas
Người đặt câu hỏi

아하 unity의 작동 방식이 조금 더 이해된 것 같아요. 감사합니다 🙂

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

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

Đặt câu hỏi