특정 기본 유형으로 시행되는 유형을 전달할 방법이 있는지 궁금해하고있었습니다. 예를 들어, 내 게임 엔진의 경우, 나는 속성 목록 (controllable, rigidBody 등)을 가지고 있습니다. 새로운 객체를 취하는 addAttribute 매개 변수가 있습니다. 그러나, 나는 또한 자신의 새 개체를 만들 수있는 대신 형식을 사용하는 오버로드를하고 싶습니다. 그래서 예를특정 추상을 상속 한 매개 변수
public void addAttribut(Type attribute)
을 위해 내가 LINQ를 구현 어쩌면 뭔가 생각하고? 나는 시도했지만 "where"는 제네릭에서만 사용할 수있는 것처럼 보입니다.
public void addAttribute(Type attribute) where attribute : Attribute
은 함수의 서명입니다. 나는 Unity가 이것을한다고 믿습니다. 그러나 Mono를 통해이 작업을 수행 할 수 있습니다.
올바른 기본 유형이 아닌 경우 항상 예외를 throw 할 수 있습니다. 그러나 프로그래머가 잘못된 시간을 함께 지키지 못하게하는 방법이 있는지 궁금합니다.
아이디어가 있으십니까? 어떤 도움이라도 대단히 감사합니다!
하아! 이제 완벽하게 유니티가 어떻게 동작 하는지를 기억합니다 (꽤 오래 사용하지 않았습니다!) –
이 답변을 찾고있는 분들께서는 함수를 함께 사용하실 수 있습니다 public void addAttribute() T : Attribute, new (), 이제 addAttribute (new T())를 호출 할 수 있습니다. –
@SergueiFedorov : 매개 변수없는 생성자를 사용하여 인스턴스를 만들고 싶지는 않다. 예를 들어 다른 생성자를 원할 수 있습니다. 내가 명확하게 대답을 수정합니다. –