2014-02-27 1 views
7

반사경에서 어셈블리를 탐색하는 동안 나는 컴파일러 생성 클래스에서 fault 키워드를 발견했습니다.try 블록에서`Fault` 키워드

이 키워드의 의미를 아는 사람이 있습니까?

C#을

private bool MoveNext() 
{ 
    bool flag; 
    try 
    { 
     // [...] 
    } 
    fault 
    { 
     this.Dispose(); 
    } 
    return flag; 
} 

vb.net

Private Function MoveNext() As Boolean 
    Dim flag As Boolean 
    Try 
     ' [...] 
    Fault 
     Me.Dispose 
    End Try 
    Return flag 
End Function 

답변

10

너희 중에 누구든지이 키워드의 경우 의미를 알고 있습니까?

예. 유효한 C#은 아니지만 일리노이에서는 예외가 throw 된 경우에만 finally과 동일합니다.

C#에서는 직접적인 상관 관계가 없기 때문에 디 컴파일러가 적절한 디 C 컴파일을 할 수 없습니다. 특정 예 : 내가 try { ...; } fault { ...; }가 C#을 번역해야한다고 생각

+0

덕분에 관련 보이는

bool success = false; try { ... stuff ... success = true; // This has to occur on all "normal" ways of exiting the // block, including return statements. } finally { if (!success) { Dispose(); } } 

내가 내 iterator block implementation details 기사에서 그것을 언급 : 당신은 같은 뭔가에게 그것을 모방 할 수 존! 나는 당신의 기사를 살펴볼 것입니다. –

0

try { ...; } catch { ...; throw; }

관련 문제