일부 매개 변수를 검사해야하는 메서드를 작성하고 유효성 검사를 받으면 IEnumerable을 반환합니다. 예 :명명 된 반복자 및 예외
public static IEnumerable<double> GetEnum(int param)
{
if (!IsValidParameter(param))
{
throw new Exception();
}
while(true)
{
yield return 5.0;
}
}
그러나 나는 나쁜 매개 변수 내 단위 테스트를 실행할 때, 나는 때문에 게으른 평가의 생각하지만, 아직는 IEnumerable 방법 중 하나를 호출하지 않는, 예외가 발생되지 않습니다.
[Test]
[ExpectedException(typeof(Exception))]
void Test()
{
var ie = GetEnum(bad_param);
}
내가 다른 함수 (푸 말), 다음 GetEnum의 매개 변수를 확인하고 푸를 호출하지만 여러 기능을 만들 필요없이 솔루션이의는 IEnumerable을 구축하여 일을 해결할 수 있습니까?
건배, 위르겐
저는 컴파일러가 두 메서드를 하나의 반복자 블록으로 축소 할만큼 똑똑했는지에 대해 실제로 궁금해했습니다. 팁 주셔서 감사합니다, 마크. –