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;
}
}
}
答案
通常导致此类行为的事情是:
- 你有一个具有相同名称的第二个局部变量,每次控制流在其声明上运行时都会重置
- 还有另一个事件被触发并重置您的变量
我要尝试的第一件事是搜索具有该名称的变量的所有赋值(不是intellisense而是文本搜索,以获得具有相同名称的所有不同变量)。在每个赋值上设置断点,并查看以什么顺序调用哪个。
以上是关于C#布尔值由事件设置不起作用的主要内容,如果未能解决你的问题,请参考以下文章
listview onclick toast在片段中不起作用[重复]