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

问题描述 投票:0回答:1

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

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;
         }
    }
}
c# if-statement boolean itext flags
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.