c# - 在 C# 中,表达式 x = y == z 代表什么?
问题描述
请原谅我的菜鸟问题,但 C# 不是我的母语。在我接手的代码中,我偶然发现
var success = true;
success = Upload.Status == FileStatus.Ok;
在那里,FileStatus
是 type enum
,在某个自定义定义的地方。我猜,success
本质上是不可为空的布尔值。我认为第二行设置success
为false
if (and only if) Upload.Status == FileStatus.Ok
,这也会导致后两个变量应该是同一类型。
请告诉我,我的假设是否正确?另外:这样的构造是如何命名的?它的缩写是什么?
解决方案
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
语法。
推荐阅读
- flutter - 底部导航栏在登录时消失,但是当我转到另一个页面并返回时返回?
- azure-logic-apps - 连接上的特权调用缺少授权标头 - 适用于 SQL 的逻辑应用 API
- php - 内部连接表交叉连接两个表和数组参数与 Laravel Eloquent
- docker - 在 Docker Build MacOS host.docker.internal 期间访问 localhost 抛出 Connection Refused 错误
- python - 在 Spyder 中使用已安装的 python 库(来自 github)
- html - angular 8 with RxJs Invoking api calls on click event - 如果 api 服务器关闭则分离
- javascript - .replace 仅当逗号后跟没有空格的文本时
- node.js - Node Postgres:如何为连接查询结果构造键名
- python - 将登录用户传递给表单
- javascript - 如何在 Bootstrap4 中设置列的高度