C# expression-bodied 成员的 method 属性
method Attribute on C# expression-bodied member
有什么方法可以在 C# 6 中指定 AttributeTargets.Method
attribute on an expression-bodied member 吗?考虑以下只读 属性:
public bool IsLast { [DebuggerStepThrough] get { return _next == null; } }
缩写的语法为:
public bool IsLast => _next == null;
但是似乎没有地方可以放置方法属性。 None 以下作品:
[DebuggerStepThrough]
public bool IsLast => _next == null; // decorates property, not method
public bool IsLast => [DebuggerStepThrough] _next == null; // error
public bool IsLast [DebuggerStepThrough] => _next == null; // error
[编辑:]表明这不是 的重复,因为这个问题问的是 any 一般适用于方法的属性,而不仅仅是 DebuggerStepThrough
属性——此处仅作为示例给出——尤其如此。
您可以将 AttributeTargets.Method
属性应用于表达式主体 方法 ,但不能应用于表达式主体 属性。
回答我自己的问题:以下语法有效,但不如问题中显示的(非工作)尝试那么紧凑。
public bool IsLast { [DebuggerStepThrough] get => _next == null; }
有什么方法可以在 C# 6 中指定 AttributeTargets.Method
attribute on an expression-bodied member 吗?考虑以下只读 属性:
public bool IsLast { [DebuggerStepThrough] get { return _next == null; } }
缩写的语法为:
public bool IsLast => _next == null;
但是似乎没有地方可以放置方法属性。 None 以下作品:
[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
属性——此处仅作为示例给出——尤其如此。您可以将 AttributeTargets.Method
属性应用于表达式主体 方法 ,但不能应用于表达式主体 属性。
回答我自己的问题:以下语法有效,但不如问题中显示的(非工作)尝试那么紧凑。
public bool IsLast { [DebuggerStepThrough] get => _next == null; }