C# 运算符和可读性

标签 c# compiler-construction operators

我只是在编写一些代码,发现自己犯了这个错误

if (stringName == "firstName" || "lastName")
   // Do code 

显然这是错误的,应该是

if (stringName == "firstName" || stringName == "lastName")
   // Do code 

但这让我开始思考可读性,第一个会更容易吗?也许有一些逻辑可以说除非指定新的 stringName,否则使用第一个?

真的不是问题,我只是好奇是否有什么我不完全理解编译这样的语句背后的逻辑。

最佳答案

我认为您的提议会使表达式解析规则变得困惑 - 现在,“==”变成了四元运算符 (?),而不是二元运算符。不过,我发现自己缺少 SQL 的“IN”运算符,并使用了类似这样的东西:

if (stringName.In("foo", "bar", "baz"))
{

}

// in an extension method class
public static bool In<T>(this T value, params T[] values)
{
    return values.Contains(value);
}

关于C# 运算符和可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615800/

相关文章:

c# - 有效地将大量参数传递给 ASP.NET MVC Controller Action

c++ - 是否有支持内置对象序列化的 C++ 编译器或附加组件?

java - Perl 的 qq 运算符在 Java 中的等价物是什么?

javascript - 如果我取消选中该复选框以及如果我选中按 (", "分割,如何打印空白)

c# - Json解析日期时间格式

c# - 这位讲师对 C# 工具的评论是什么意思?

Java数学运算简写?

c# - 如何使用多个嵌套的三元运算符返回一个值

c# - 如何修复由 lambda 事件处理程序引起的 GC 周期?

c++ - 如何将模式从Dev-C++中的c++ 98模式更改为支持C++ 0x(基于范围)的模式?