这是一个奇怪的问题,但在其他人的另一个问题的回答中,他们发布了以下内容
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:首先将计算表达式,结果为trueor 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如果不相等则放入。pingablereply.StatusIPStatus.Successfalsepingable
这是一个条件。pingable是布尔值。
pingable(作为布尔值)设置为 ifreply.Status等于IPStatus.Sucess