debugging 属性在调试模式下单步执行时跳过方法

j5fpnvbx  于 2023-04-12  发布在  其他
关注(0)|答案(4)|浏览(213)

是否有一个属性可以在方法上使用,以便在调试模式下单步执行某些代码时,调试器停留在方法的外部?

k10s72fa

k10s72fa1#

[DebuggerStepThrough]

docs

lvmkulzt

lvmkulzt2#

别忘了加上:

using System.Diagnostics;
kknvjkwl

kknvjkwl3#

在***VB.NET***中写为<DebuggerStepThrough>
要使用它,只需将其置于方法之上,如:

<DebuggerStepThrough>
Private Sub form_Paint(sender As Object, e As PaintEventArgs) Handles form.Paint
     ' Picasso
End Sub
gudnpqoy

gudnpqoy4#

一般的回答(特别是对@Marchy,即使是14年后的事实)。
一句警告:我不喜欢在我的代码中使用VB的Imports或C#的using,因为我偶然发现的大多数示例代码几乎总是省略这些声明,只显示代码,没有给读者任何线索,比如调用的对象/类/方法是从哪里来的。
在C#中,您可以将类和函数标记为“调试器单步执行”,如下所示:

[System.Diagnostics.DebuggerStepThrough]
class someClass {
    ...
}

[System.Diagnostics.DebuggerStepThrough]
void someMethod (args...){
    ...
}

在VB中,另一方面,语法几乎相同;只要在看到C#方括号时使用尖括号即可:

<System.Diagnostics.DebuggerStepThrough>
Friend Class someClass
    ...
End Class

<System.Diagnostics.DebuggerStepThrough>
Private Sub someMethod (args...)
    ...
End Sub

但是属性呢,@Marchy说?如果你把属性添加到属性声明本身,这些属性会给你一个错误 *。解决方案是把属性添加到Getter/Setter本身,因为它影响的是代码,而不是声明。在VB中:

Public Property propertyName

    <System.Diagnostics.DebuggerStepThrough>
    Get
        ...
    End Get

    <System.Diagnostics.DebuggerStepThrough>
    Set (args...)
        ...
    End Set

End Property

希望能帮上忙。

  • 错误是:Attribute 'DebuggerStepThroughAttribute' cannot be applied to '{propertyName}' because the attribute is not valid on this declaration type.

相关问题