gpt4 book ai didi

c# - 函数返回路径

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:32 26 4
gpt4 key购买 nike

我有以下代码,我真的不喜欢“return string.Empty;”最后,但这是我阻止 Visual Studio 对我咆哮的唯一方法。

有人可以给我一些避免这种情况的建议吗?或者何时或如何使用“使用”

还有关于 TDD 的好资源吗?我不知道如何为此编写测试。

private string GetWMIProperty(string property)
{
SelectQuery selectQuery = new SelectQuery("Win32_OperatingSystem");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery))
{
string value = string.Empty;
foreach (ManagementObject mo in searcher.Get())
{
return mo[property].ToString();
}
}
return string.Empty;
}

最佳答案

问题:您正在从 foreach 循环返回,因此它只返回第一项。

解决方案 1:如果您确定只有一个项目将从 foreach 循环返回,那么您可以将其保存在一个字符串变量中并在结束时返回。

试试这个:

private string GetWMIProperty(string property)
{
string value = string.Empty;
SelectQuery selectQuery = new SelectQuery("Win32_OperatingSystem");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery))
{

foreach (ManagementObject mo in searcher.Get())
{
value = mo[property].ToString();
}
}
return value;
}

解决方案 2:如果您的 foreach 循环可以迭代超过 1 次,那么最好将您的项目保存到某个集合中,然后返回该集合而不是字符串

试试这个:

private List<string> GetWMIProperty(string property)
{
List<string> value =new List<string>();
SelectQuery selectQuery = new SelectQuery("Win32_OperatingSystem");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery))
{

foreach (ManagementObject mo in searcher.Get())
{
value.Add(mo[property].ToString());
}
}
return value;
}

关于c# - 函数返回路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22100732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com