c# - 电池电量 IF 语句

标签 c# conditional-statements

我正在用 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;
}

关于c# - 电池电量 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18125363/

相关文章:

c# - 如何在按回车键后使用 MonoMac 在 NSTextField 中插入回车符?

c# - 如何在 WPF 中获得有/无周末的选定月份的总天数?

php - 如何根据内容和使用 PHP/JavaScript 通过 MySQL 查询生成的 : Conditionally format a <td>,

r - 在 R 中使用 case_when 查看列名末尾的数字大于另一个列名末尾的数字

java - 根据参数在构造函数中调用不同的 super()

Flutter/Dart - 将逗号分隔的字符串拆分为 3 个变量?

c# - 无法反序列化 XML

c# - 在 Xamarin 中使用 ZeroMQ

c# - 同步平移两个图表区域

汇编语言je跳转函数