이것은 합리적인되지 않을 수도 있습니다, 하지만 나는 어디에서 그것이 방법을 반환 값이 사용되지 않는 경우 컴파일 오류가되고 싶습니다 상황을 찾고 있어요.C# - 반환 된 형식을 L 값에 할당해야합니까?
IEnumerator myCoroutine() {... yield break;}
당신이 myCoroutine()
를 호출하고 반환 된 값 (예를 들어, 당신이 아닌 다른 수율 내부에서, 보통의 방법처럼 전화하는거야으로 아무것도하지 않는 경우 :
특히, Unity3D는 다음과 같이 코 루틴을 구현 절 또는 StartCoroutine() 메서드를 통해) 결과적으로 myCoroutine() 내부의 모든 코드가 실행되지 않습니다. 그러나에는 컴파일 또는 런타임 경고가 없습니다. 이 시나리오에서 컴파일 타임 오류를 얻고 싶습니다. 난 생각
하나 개의 접근법은 몇 가지 방식으로 전달되어야하는 속성을 추가 발언권의 MyIEnumerator로 IEnumerator를 하위 클래스이다 - 하나
등 L 자 값을 할당하거나 메소드에 전달 그러나 나는 그러한 요구 사항이 존재 하는지를 발견 할 수 없었다.
어떻게'myCoroutine' 함수를 호출하고 있습니까? 또한 그 안의 코드가 실행되지 않는다는 것을 어떻게 알 수 있습니까? 귀하의 진술에'Debu.Log '를 넣으십시오. – Programmer
@Programmer 그가 말했듯이 누군가가 iterator 블록으로 구현 된 IEnumerable을 반환하는 메서드를 호출 한 다음 반복하지 않으면 반복기 코드가 실행되지 않습니다. 원한다면 그러한 프로그램을 직접 작성할 수 있습니다. 꽤 명확한 동작입니다. – Servy
@Programmer, 로깅으로 테스트했기 때문에 코드가 실행되지 않는다는 것을 알고 있습니다. 내가 코 루틴을 호출하는 방법을 설명했습니다. 정상적인 방법처럼, 코 루틴이 아닙니다. 이 경우 컴파일 타임 오류가 발생하여 실수를 저에게했는지 알려드립니다. –