首页 > 解决方案 > 在 C# 中,表达式 x = y == z 代表什么?

问题描述

请原谅我的菜鸟问题,但 C# 不是我的母语。在我接手的代码中,我偶然发现

var success = true;
success = Upload.Status == FileStatus.Ok;

在那里,FileStatus是 type enum,在某个自定义定义的地方。我猜,success本质上是不可为空的布尔值。我认为第二行设置successfalseif (and only if) Upload.Status == FileStatus.Ok,这也会导致后两个变量应该是同一类型。

请告诉我,我的假设是否正确?另外:这样的构造是如何命名的?它的缩写是什么?

标签: c#

解决方案


success将是一个布尔值。

它用 true 初始化,但这应该是不必要的。

var success = true;

然后将其设置为(Upload.Status == FileStatus.Ok)bool 的结果。

success = Upload.Status == FileStatus.Ok;

想一想,success = (Upload.Status == FileStatus.Ok);好像这有帮助。

是的,我也花了一点时间来解析它。我非常不喜欢那些以牺牲可读性为代价来节省行数的人。我会用这个:

if(Upload.Status == FileStatus.Ok)
    success = true;
else
    success = false;

也许使用较短的if语法。


推荐阅读