这确实是一个详细的格式问题,但我每次都会被它绊倒......
对于多行条件表达式,逻辑运算符的首选放置位置是什么?
替代方案 1:每行末尾的逻辑运算符
if (value1 == comparision1 &&
value2 != comparision2 &&
!comparision3.Contains(value3))
{
// stuff
}
Run Code Online (Sandbox Code Playgroud)
优点:线条优美对齐
缺点:逻辑运算符很容易被错过
替代方案 2:每行开头的逻辑运算符
if (value1 == comparision1
&& value2 != comparision2
&& !comparision3.Contains(value3))
{
// stuff
}
Run Code Online (Sandbox Code Playgroud)
优点:逻辑运算符强烈存在
缺点:对齐看起来很奇怪
你喜欢哪个?过去哪些格式对您有帮助?过去哪些格式让您感到困惑?
编辑:
刚刚发现了一个我以前没有找到的相关问题(尽管我进行了深入的搜索):What is the best Formats for Operator Places on New Lines?
人们似乎普遍认为,运营商的安置完全取决于个人意见(除了那里的答案中概述的一个例外),但我不同意这一点。由于我写的赞成/反对意见,肯定会对代码可读性产生影响!
剩下的问题是:我没有个人意见,每次遇到这种情况都不知道该选择什么风格。显然理论上很难评价,所以我向你们询问了你们过去用这种表达方式所做的实践经验。
灵感来自我当前的问题,这与此类似:
Queling.Peek()的类似于BlockingCollection,当听取消费IEnumerable <T>与我当前的区别 - 我正在使用ConcurrentQueue<T>而不是BlockingCollection<T>,我想知道什么是用例对于ConcurrentQueue<T>.TryPeek()可能?
当然,我的意思是没有手动lock(myQueue)内容的用例来序列化队列访问,因为TPL旨在改进/替代这些锁定.
如何将 setter 分配给条件值(例如 more than )0?如果值不是,我需要隐藏一个对象0。最好的方法是什么?任何想法都受到高度赞赏。
XAML 示例DataTrigger:
<DataTrigger Binding="{Binding Role.Count}" Value="0">
<Setter TargetName="Counts" Property="Visibility" Value="Hidden" />
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)