【发布时间】:2016-05-04 06:48:45
【问题描述】:
C# 中的表达式体属性是否有类似 [DebuggerStepThrough] 的属性?
例如我想跳过代码
public Byte ByteArray => Builder.CreateArray();
[DebuggerStepThrough] 不能应用于属性。 C# 团队在 C# 6.0 中是否提供任何其他解决方案?
【问题讨论】:
-
你试过了吗?
C# 中的表达式体属性是否有类似 [DebuggerStepThrough] 的属性?
例如我想跳过代码
public Byte ByteArray => Builder.CreateArray();
[DebuggerStepThrough] 不能应用于属性。 C# 团队在 C# 6.0 中是否提供任何其他解决方案?
【问题讨论】:
C# 9.0:仍然没有运气。但是可以使用表达式主体:
public Byte ByteArray
{
[DebuggerStepThrough]
get => Builder.CreateArray();
}
或与单行代码相同:
public Byte ByteArray {[DebuggerStepThrough] get => Builder.CreateArray();}
【讨论】:
DebuggerStepThrough 对表达式主体属性无效,因为:
[DebuggerStepThrough]
public Byte ByteArray => Builder.CreateArray();
不编译。然而,这确实:
public Byte ByteArray
{
[DebuggerStepThrough]
get
{
return Builder.CreateArray();
}
}
还有其他调试器属性,例如 DebuggerHidden 和 DebuggerNonUserCode,但它们不会禁用单步执行。
您可以在调试选项中为所有属性禁用它,但 IMO 无法仅为表达式主体属性配置它。
【讨论】: