Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表在方法的中间被清空_C#_List_Variables_Page Lifecycle - Fatal编程技术网

C# 列表在方法的中间被清空

C# 列表在方法的中间被清空,c#,list,variables,page-lifecycle,C#,List,Variables,Page Lifecycle,这让我感到困惑——我不是页面生命周期方面的专家,但我不明白为什么会发生这种情况。这可能是我申报清单的一个简单例子。代码如下: public partial class feedback : System.Web.UI.Page { List<Module> allModules = new List<Module>(); protected void Page_Load(object sender, EventArgs e) {

这让我感到困惑——我不是页面生命周期方面的专家,但我不明白为什么会发生这种情况。这可能是我申报清单的一个简单例子。代码如下:

public partial class feedback : System.Web.UI.Page
{
    List<Module> allModules = new List<Module>();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            allModules = getAllModules();

            // Populate dropdown list of modules
            populateModulesDropDown();
...
公共部分类反馈:System.Web.UI.Page
{
List allModules=new List();
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!Page.IsPostBack)
{
allModules=getAllModules();
//填充模块的下拉列表
populateModulesDropDown();
...
逻辑是这样的:在getAllMethods()方法中,列表“allModules”被一个名为“Module”的类的对象填充。我在每个步骤上都进行了调试和逐步测试。allModules的计数应该是9,但当我跳到下一行运行populateModulesDropDown()时方法-计数为零..发生了什么事

任何帮助都会很棒-谢谢


Frank

因为您没有使用allModules的参数调用populateModulesDropDown,也没有调用allModules的实例。populateModulesDropDown

嗯,列表是您类中的一个字段,所以同一类中的其他方法将可以访问它。也许某个方法正在清除或分配它?尝试使用IDE查找该字段的所有引用,并查找对该字段的任何分配。

我从getAllModules()返回了一个不同的列表对象由于在前面进行更改时忽略了一行。抱歉和感谢

populateModulesDropDown不使用allModules的参数。它只是将其引用为。allModules.Ok让我们从逻辑上进行处理。通过调用getAllModules填充allModules。然后调用对allModules一无所知的静态函数les.这就是为什么您的列表为0抱歉,由于之前更改了一些代码并缺少一行,我返回了一个不同的列表..感谢您的帮助Agree.只需尝试populateModulesDropDown(allModules)。即使它不起作用,您也会改进您的代码;)(getAllModules()有点不一致)不设置实例的字段,但填充..使用该字段。避免此类操作有助于避免您面临的问题,即使这不是本例中的原因)谢谢,但在这部分代码中,唯一对其执行任何操作的方法是getAllMethods()在获取所有方法并将它们添加到其中之前,它会清除所有方法。有什么想法吗?这里没有足够的信息来诊断问题。我要做的是尝试减少问题。开始从应用程序中提取功能,直到你有可能复制问题的最小应用程序。在这一点上,问题lem对你来说会变得很明显,或者你会有一些足够小的东西,你可以把它全部发布在这里。