有没有办法在C#6的attribute上指定AttributeTargets.Method
expression-bodied member?请考虑以下只读属性:
public bool IsLast { [DebuggerStepThrough] get { return _next == null; } }
缩写的synax将是:
public bool IsLast => _next == null;
但是似乎没有地方放置方法属性。以下工作均不起作用:
[DebuggerStepThrough]
public bool IsLast => _next == null; // decorates property, not method
public bool IsLast => [DebuggerStepThrough] _next == null; // error
public bool IsLast [DebuggerStepThrough] => _next == null; // error
DebuggerStepThrough
属性 - 特别是在这里作为示例给出 -
答案 0 :(得分:2)
您可以将AttributeTargets.Method
属性应用于表达式身体方法,但不能应用于表达式身体属性。
答案 1 :(得分:0)
回答我自己的问题:以下语法有效,但它不像问题中显示的(非工作)尝试那么紧凑。
public bool IsLast { [DebuggerStepThrough] get => _next == null; }