public static class clsCounter
{
static int count;
public static int Counter
{
get { return count; }
set { count = value; }
}
}
Выше приведен статический класс, который используется для записи числа.
Кроме того, у меня есть два проекта в рамках решения VS2010, один из которых - библиотека классов. В одном из этих классов у меня есть следующий код, который использует clsCounter
.
if (clsCounter.Counter == 0)
countIES++;
else
countIES = 0;
Теперь в другом проекте я установил несколько новых значений на clsCounter
clsCounter.Counter = 50;
Однако по какой-то причине я не могу установить clsCounter.Counter равным 50, поэтому я всегда получаю countIES++
. Код выглядит хорошо для меня, и я понятия не имею, что с ним не так? Кто-нибудь может помочь?
Спасибо.
EDIT:
Интересно, это как-то связано с объемом проектов в рамках решения?
Структура раствора
Решение
ExcelAddIn
- Form1.cs => (clsCounter.Counter = 50)
- ...
ClassLibrary
- clsCounter => (статический класс)
- ...
РЕДАКТИРОВАТЬ 2:
clsCounter.Counter = 50;
фактически выполняется в событии backgroundworker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
. Может ли это быть возможной проблемой?
РЕДАКТИРОВАТЬ 3:
Я загрузил пример проекта, который, похоже, может воспроизвести ту же проблему. Вот общая ссылка: => http://www.4shared.com/folder/sInyNWyi/_online.html
Я хотел бы заполнить ячейку значением Other case
после нажатия кнопки «Задать значение». Статический класс и UDF можно найти в библиотеке классов.
Обратите внимание, что для использования = testFunc () в дополнении Excel необходимо найти его в списке серверов автоматизации и включить его. Просто зайдите в File-> Option-> Addin-> Under Manage Add-in-> Нажмите GO-> Автоматизация-> Ebale ClassLibrary1.UDF
Также проверьте, включена ли опция " Регистрация для COM-взаимодействия ", перед запуском отладчика. Чтобы найти его, перейдите в свойство ClassLibrary1 -> Build -> Under Output, отметьте Регистрация для взаимодействия COM .