中频电池电量声明

用户名

我正在使用C#编写语音识别程序,并且编译了几行代码,当我说“电池电量”时,它们可以说出当前的电池电量。

if (e.Result.Text.ToLower() == "battery level")
        {
            System.Management.ManagementClass wmi = new System.Management.ManagementClass("Win32_Battery");
            var allBatteries = wmi.GetInstances();
            String estimatedChargeRemaining = String.Empty;

            foreach (var battery in allBatteries)
            {
                estimatedChargeRemaining = Convert.ToString(battery["EstimatedChargeRemaining"]);
            }

            JARVIS.Speak("The Power Level Is At: " + estimatedChargeRemaining + "% sir");
            return;
        }

在此我想创建另一条 if语句来提醒我,如果电池电量已降至25%以下如何才能做到这一点?我猜会是类似“,if estimatedChargeRemaining < 25 then JARVIS.Speak("Warning, Battery level has dropped below 25%")但我不太确定。

键盘

我不确定battery["EstimatedChargeRemaining"]返回哪种格式,但是您似乎可以将其转换为int而不是字符串。

int batteryLevel = Convert.ToInt32(battery["EstimatedChargeRemaining"]);
if(batteryLevel < 25)       
   JARVIS.Speak("Warning, Battery level has dropped below 25%");

然后,您可以稍后使用该batteryLevel变量

JARVIS.Speak("The Power Level Is At: " + batteryLevel.ToString() + "% sir");

不确定是否要这样做,但是foreach循环意味着您只会得到中的最后一个值的电池信息allBatteries所有先前的值将被覆盖。

编辑评论(您应该添加错误处理)

if (e.Result.Text.ToLower() == "battery level")
{
    System.Management.ManagementClass wmi = new System.Management.ManagementClass("Win32_Battery");
    var allBatteries = wmi.GetInstances();
    //String estimatedChargeRemaining = String.Empty;
    int batteryLevel = 0;

    foreach (var battery in allBatteries)
    {
        batteryLevel = Convert.ToInt32(battery["EstimatedChargeRemaining"]);
    }

    if(batteryLevel < 25)       
       JARVIS.Speak("Warning, Battery level has dropped below 25%");
    else //Guessing you want else
       JARVIS.Speak("The Power Level Is At: " + batteryLevel.ToString() + "% sir");
    return;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章