仅在条件为30或更高时才调用方法

时间:2017-04-30 15:15:13

标签: c#

当条件v高于30时,它会继续在应用中发送短信。 但是,我希望它只发送1条短信,然后在v返回到29,然后是30时重新发送短信。

if(v >= 30) 
{
    do 
    {
        var SmsMessenger = (CrossMessaging.Current.SmsMessenger);

        if(SmsMessenger.CanSendSmsInBackground)
        {
            SmsMessenger.SendSmsInBackground("+000000", "Test")
        }
    } 
    while(((currentLocation.Speed * 3600) / 1000) != 20);
}

1 个答案:

答案 0 :(得分:2)

您可以使用标记来拨打该邮件一次。

bool IsSmsSended = false;


if(v >= 30 && !IsSmsSended) {
   do {
      var SmsMessenger= (CrossMessaging.Current.SmsMessenger);
      if(SmsMessenger.CanSendSmsInBackground){
         SmsMessenger.SendSmsInBackground("+000000","Test")
      }
   }
   while(((currentLocation.Speed * 3600) /1000) !=20);
   IsSmsSended = true;
}else if(v < 30){
   IsSmsSended = false;
}

如果值低于30,则必须重置IsSmsSended。查看else if。

P.S。:让IsSmsSended全球化。