Добрый день всем!
Возникла проблема с видимостью переменной.
Для рассериализации массива сериализованного с помощью PHP использую библиотеку PHPSerializationLibrary.
Вот начало где подключаю её
public partial class mainForm : Form
{
public Conversive.PHPSerializationLibrary.Serializer serializer;
public mainForm()
{
InitializeComponent();
serializer = new Conversive.PHPSerializationLibrary.Serializer();
}
}
Дальше беру массив и кидаю его этой библиотеке вот так:
if (cardsForPrint.Rows[k][20].ToString() == "L")
{
Hashtable ht = (Hashtable)serializer.Deserialize(LParams);
}
Этот кусок кода в событии на нажатие кнопки. Дальше мне надо взять результат и работать с ним, за пределами условий, т.е. после if else пишу:
newPrintTemplate = newPrintTemplate.Replace("$v67", krest(Convert.ToInt32((string)ht[1])));
И вот здесь он не видит переменную ht, если поставить этот код внутрь if то видит. За его пределами нет.
Выручайте ребят, несколько дней уже бьюсь :)
P.S. Когда выношу объявление переменной за пределы if то они перестают работать. Т.е. пишу Hashtable ht = new Hashtable(); над условиями, то после условий видится пустая хэш таблица.
P.P.S. Комментарии подсказали и заработало в итоге вот так:
Hashtable ht = new Hashtable();
if (cardsForPrint.Rows[k][20].ToString() == "L")
{
ht = (Hashtable)serializer.Deserialize(LParams);
}