gpt4 book ai didi

c# - 从方法内添加到列表

转载 作者:行者123 更新时间:2023-11-30 16:05:57 25 4
gpt4 key购买 nike

我是 Asp.net 和 C# 的新手,我正在尝试记录对目录所做的更改。我遇到的问题是,从我的方法中获取对目录所做的更改,我无法将信息(以字符串的形式)添加到列表、列表框或方法之外的任何内容。

这是获取目录更改的方法:

protected void OnChanged(object sender, FileSystemEventArgs e)
{

if (!m_bDirty)
{

m_Sb.Clear();

m_Sb.Append(e.FullPath);
m_Sb.Append(" ");
m_Sb.Append(e.ChangeType.ToString());
m_Sb.Append(" ");
m_Sb.Append(DateTime.Now.ToString());
m_bDirty = true;
test.Add(m_Sb.ToString());

下面是方法外的变量:

public partial class _Default : System.Web.UI.Page
{
private System.IO.FileSystemWatcher watcher;
private bool m_bDirty;
private StringBuilder m_Sb = new StringBuilder();
private List<String> test = new List<String>();

我的问题是,当我尝试从 OnChanged 方法之外的列表(测试)中提取信息时,那里什么也没有。

最佳答案

每当页面上发生回发时,您的列表测试将重新初始化为一个新列表,这将清除它可能拥有的所有数据。

您可以改为将其声明为静态字段,然后在页面期间对其进行初始化

private static List<string> test;

protected void Page_Init(object sender, EventArgs e) {
test = test ?? new List<string>();
// ... additional initalization
}

在其他方法处理完列表后,您可以通过将其设置回 null 来清除列表。

关于c# - 从方法内添加到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32914436/

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