0

这是一个奇怪的问题,但在其他人的另一个问题的回答中,他们发布了以下内容

try
{
   PingReply reply = pinger.Send(nameOrAddress);
   pingable = reply.Status == IPStatus.Success;
}

如何pingable = reply.Status == IPStatus.Success;工作?对我来说,这看起来像是一个没有 if 的 if 语句。

4

6 回答 6

10
reply.Status == IPStatus.Success 

将返回boolean将分配给pingable变量的 a。

语句内部也会发生同样的事情if:首先将计算表达式,结果为trueor false,并且仅将结果作为分支条件进行检查。

于 2013-08-12T18:58:58.727 回答
3

如同

if(reply.Status == IPStatus.Success)
    pingable = true;
else
    pingable = false;

编码

reply.Status == IPStatus.Success

返回一个插入 pingable 的布尔值。

于 2013-08-12T19:00:06.657 回答
2

(reply.Status == IPStatus.Success) 评估为布尔值 true 或 false

于 2013-08-12T18:58:59.133 回答
1

运算符==始终解析为布尔值

所以

pingable = reply.Status == IPStatus.Success;

如果和相等则放入,true如果不相等则放入。pingablereply.StatusIPStatus.Successfalsepingable

于 2013-08-12T18:59:11.363 回答
1

这是一个条件。pingable是布尔值。

于 2013-08-12T18:59:11.963 回答
0

pingable(作为布尔值)设置为 ifreply.Status等于IPStatus.Sucess

于 2013-08-12T18:59:12.777 回答