在调试器中跳过表达式主体 属性
Skip expression bodied property in debugger
在 C# 中是否有类似 [DebuggerStepThrough]
的属性可用于表达式主体属性?
例如我想跳过代码
public Byte ByteArray => Builder.CreateArray();
[DebuggerStepThrough]
无法应用于属性。 C# 团队是否在 C# 6.0 中提供任何其他解决方案?
DebuggerStepThrough
对表达式主体属性无效,因为:
[DebuggerStepThrough]
public Byte ByteArray => Builder.CreateArray();
不编译。然而,这确实:
public Byte ByteArray
{
[DebuggerStepThrough]
get
{
return Builder.CreateArray();
}
}
还有其他调试器属性,如 DebuggerHidden
和 DebuggerNonUserCode
,但它们不会禁用 step-through。
您可以在调试选项中为所有属性禁用它,但 IMO 无法只为 expression-bodied 个属性配置它。
C# 9.0:仍然不走运。但是可以使用表达式主体:
public Byte ByteArray
{
[DebuggerStepThrough]
get => Builder.CreateArray();
}
或与一行相同的代码:
public Byte ByteArray {[DebuggerStepThrough] get => Builder.CreateArray();}
在 C# 中是否有类似 [DebuggerStepThrough]
的属性可用于表达式主体属性?
例如我想跳过代码
public Byte ByteArray => Builder.CreateArray();
[DebuggerStepThrough]
无法应用于属性。 C# 团队是否在 C# 6.0 中提供任何其他解决方案?
DebuggerStepThrough
对表达式主体属性无效,因为:
[DebuggerStepThrough]
public Byte ByteArray => Builder.CreateArray();
不编译。然而,这确实:
public Byte ByteArray
{
[DebuggerStepThrough]
get
{
return Builder.CreateArray();
}
}
还有其他调试器属性,如 DebuggerHidden
和 DebuggerNonUserCode
,但它们不会禁用 step-through。
您可以在调试选项中为所有属性禁用它,但 IMO 无法只为 expression-bodied 个属性配置它。
C# 9.0:仍然不走运。但是可以使用表达式主体:
public Byte ByteArray
{
[DebuggerStepThrough]
get => Builder.CreateArray();
}
或与一行相同的代码:
public Byte ByteArray {[DebuggerStepThrough] get => Builder.CreateArray();}