gpt4 book ai didi

c# - 包含项目的列表返回空

转载 作者:太空狗 更新时间:2023-10-29 20:42:40 25 4
gpt4 key购买 nike

我创建了一个简单的列表函数,但如果我循环遍历列表,它是空的。不应该!

// List function 
public class process_hook
{
public static List<String> pro_hook = new List<String>
(new String[] { list_all_pocesses() });
protected static string list_all_pocesses()
{
StringBuilder _list = new StringBuilder();
foreach (Process i in Process.GetProcesses("."))
{
try
{
foreach (ProcessModule pm in i.Modules)
{
pro_hook.Add(pm.FileName.ToString());
}
}
catch { }
}
return _list.ToString();
}
}


// call
private void button1_Click(object sender, EventArgs e)
{
foreach (String _list in process_hook.pro_hook)
{
Console.WriteLine(_list);
}
}

最佳答案

好吧,这是一个开始的问题:

catch { }

如果出现任何问题,您将默默地中止。

也许这就是正在发生的事情? (编辑:是的。稍后见。)

下一个问题是您的“列表”将只包含一个字符串……这真的是您想要的吗?我怀疑您看到的列表实际上是空的 - 但它将包含一个空字符串。

(附带说明,我强烈建议您开始遵循 .NET 命名约定并避免使用这样的全局变量。)

编辑:啊——我刚刚意识到你做了什么。你可能实际上得到了一个 NullReferenceExceptionlist_all_pocesses ,你已经捕获并忽略了。

您调用 pro_hook.Add在您为 pro_hook 赋值之前创建.基本上你有一个变量初始化器,它使用一个方法,而这个方法又使用变量。 不要那样做。如果您在调试器中单步执行代码,您可能会更了解正在发生的事情,但基本上您已经为自己创建了一个大意大利面条球。

为什么不 list_all_pocesses只需返回 List<string> ?为什么要使用 StringBuilder有没有?

关于c# - 包含项目的列表返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4691530/

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