C#布尔值由事件设置不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#布尔值由事件设置不起作用相关的知识,希望对你有一定的参考价值。

我有一个由事件设置的布尔值的问题。

private void HandlePageStart(Document document, PdfWriter writer)
{
    ItemsTableColumnHeadersInsertNeeded = true;
    Console.WriteLine("Page started");
}

HandlePageStart函数由事件触发,它工作正常,并将boolean设置为true。但是,如果在另一个函数的循环中运行的语句不起作用,并且if语句中的代码永远不会执行。

private void AddItemsToTable(Invoice inv, PdfPTable table)
{
    foreach (InvoiceItem item in inv.Items)
    {
         ...add content to page...

         if (ItemsTableColumnHeadersInsertNeeded)
         {
             AddItemsTableColumnsHeaders(table);
             ItemsTableColumnHeadersInsertNeeded = false;
         }
    }
}
答案

通常导致此类行为的事情是:

  1. 你有一个具有相同名称的第二个局部变量,每次控制流在其声明上运行时都会重置
  2. 还有另一个事件被触发并重置您的变量

我要尝试的第一件事是搜索具有该名称的变量的所有赋值(不是intellisense而是文本搜索,以获得具有相同名称的所有不同变量)。在每个赋值上设置断点,并查看以什么顺序调用哪个。

以上是关于C#布尔值由事件设置不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Onclicklistener 在片段列表视图中不起作用

listview onclick toast在片段中不起作用[重复]

存在嵌套片段时 setRetainInstance(true) 将不起作用

Android - 从堆栈中间删除特定片段不起作用

java代码在片段活动中不起作用

Javascript代码片段在drupal中不起作用