条件属性与评论

Posted

技术标签:

【中文标题】条件属性与评论【英文标题】:ConditionalAttribute vs Comments 【发布时间】:2014-01-06 23:27:23 【问题描述】:

我刚刚读到http://msdn.microsoft.com/en-us/library/system.diagnostics.conditionalattribute.aspx。

我正在努力理解使用

之间的区别
[Conditional("CONDITION1")] 

有/无

#define CONDITION1

只是评论/取消评论一个方法?

ConditionalAttribute 的唯一目的是让编译器忽略一个方法或属性吗?如果是这样,为什么不使用评论呢?如果不是,与只使用 cmets 相比有什么优势?

【问题讨论】:

您可以在构建时轻松定义符号,例如csc /define:CONDITION1。注释掉整个方法体要困难得多。 在我看来,您可以将它重新用于多种方法。这样你就不会在 cmets 中有一半的代码,但你只有一个 #define CONDITION1 【参考方案1】:

使用条件属性,您可以通过一个步骤启用和禁用多个代码部分,而不必搜索源代码并注释/取消注释多个位置。

条件属性还可以提供有关为什么启用或禁用某些代码的信息(例如,出于调试目的等)

此外,您应该更喜欢条件属性而不是条件编译(#if 等),如Effective C# 中所述。

【讨论】:

以上是关于条件属性与评论的主要内容,如果未能解决你的问题,请参考以下文章

与模型属性的 where 条件的雄辩关系

NSPredicate 用于检查与其他变量匹配的 CoreData 属性是不是满足条件

Angular2:条件显示,绑定到 [hidden] 属性与 *ngIf 指令 [重复]

04.React组件基础案例

IAM 策略条件中的 cognito 用户池自定义属性与 Dynamodb 细粒度访问

EassyUI内置方法与属性