这是一个奇怪的问题,但在其他人的另一个问题的回答中,他们发布了以下内容
try
{
PingReply reply = pinger.Send(nameOrAddress);
pingable = reply.Status == IPStatus.Success;
}
如何pingable = reply.Status == IPStatus.Success;
工作?对我来说,这看起来像是一个没有 if 的 if 语句。
这是一个奇怪的问题,但在其他人的另一个问题的回答中,他们发布了以下内容
try
{
PingReply reply = pinger.Send(nameOrAddress);
pingable = reply.Status == IPStatus.Success;
}
如何pingable = reply.Status == IPStatus.Success;
工作?对我来说,这看起来像是一个没有 if 的 if 语句。
reply.Status == IPStatus.Success
将返回boolean
将分配给pingable
变量的 a。
语句内部也会发生同样的事情if
:首先将计算表达式,结果为true
or false
,并且仅将结果作为分支条件进行检查。
如同
if(reply.Status == IPStatus.Success)
pingable = true;
else
pingable = false;
编码
reply.Status == IPStatus.Success
返回一个插入 pingable 的布尔值。
(reply.Status == IPStatus.Success) 评估为布尔值 true 或 false
运算符==
始终解析为布尔值
所以
pingable = reply.Status == IPStatus.Success;
如果和相等则放入,true
如果不相等则放入。pingable
reply.Status
IPStatus.Success
false
pingable
这是一个条件。pingable
是布尔值。
pingable
(作为布尔值)设置为 ifreply.Status
等于IPStatus.Sucess