小编Nic*_*las的帖子

关于在多行条件表达式中放置逻辑运算符的建议

这确实是一个详细的格式问题,但我每次都会被它绊倒......

对于多行条件表达式,逻辑运算符的首选放置位置是什么?


替代方案 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?

人们似乎普遍认为,运营商的安置完全取决于个人意见(除了那里的答案中概述的一个例外),但我不同意这一点。由于我写的赞成/反对意见,肯定会对代码可读性产生影响!

剩下的问题是:我没有个人意见,每次遇到这种情况都不知道该选择什么风格。显然理论上很难评价,所以我向你们询问了你们过去用这种表达方式所做的实践经验。

language-agnostic code-formatting

6
推荐指数
1
解决办法
2105
查看次数

ConcurrentQueue <T> .TryPeek()的用例是什么?

灵感来自我当前的问题,这与此类似: Queling.Peek()的类似于BlockingCollection,当听取消费IEnumerable <T>与我当前的区别 - 我正在使用ConcurrentQueue<T>而不是BlockingCollection<T>,我想知道什么是用例对于ConcurrentQueue<T>.TryPeek()可能?

当然,我的意思是没有手动lock(myQueue)内容的用例来序列化队列访问,因为TPL旨在改进/替代这些锁定.

c# multithreading .net-4.0 task-parallel-library

4
推荐指数
1
解决办法
4776
查看次数

是否可以有一个条件设置器,大于 0 值?

如何将 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)

wpf binding wpf-controls

1
推荐指数
1
解决办法
3682
查看次数