try块中的c# – `Fault`关键字

try块中的c# – `Fault`关键字,第1张

概述在探测反射器中的程序集时,我在编译器生成的类中偶然发现了一个fault关键字. 如果这个关键字,你们有没有人知道这个意思? C# private bool MoveNext(){ bool flag; try { // [...] } fault { this.Dispose(); } return 在探测反射器中的程序集时,我在编译器生成的类中偶然发现了一个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 flagEnd Function
解决方法

Do any of you kNow the meaning if this keyword?

是.它不是有效的C#,但在IL中它相当于finally,但只有在抛出异常的情况下才有效.

在C#中没有直接关联,这就是反编译器无法将其反编译为正确的C#的原因.您可以使用以下内容来模拟它:

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文章中提到它看起来与你的特定例子相关:)

总结

以上是内存溢出为你收集整理的try块中的c# – `Fault`关键字全部内容,希望文章能够帮你解决try块中的c# – `Fault`关键字所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1245634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存