#c# #asp.net #function #session #variables
#c# #asp.net #функция #сессия #переменные
Вопрос:
Я пытаюсь передать значение переменной, сгенерированной в событии нажатия кнопки 1, в try { } другой функции (function2). Каков наиболее эффективный способ сделать это? Объект сеанса?
private static string createAuthCode()
{
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buff = new byte[5];
rng.GetBytes(buff);
return Convert.ToBase64String(buff);
}
protected void Button1_Click(object sender, EventArgs e)
{
//code
//..
try {
...
string authCode = createAuthCode();
}
//code
//..
function2();
}
protected void function2()
{
//I want to access authCode here
}
Комментарии:
1. вы не можете изменить подпись
function2
? Еслиfunction2
предназначено для вызоваButton1_Click
только из, то почему бы не передать его в качестве параметра
Ответ №1:
Почему бы вам не использовать параметр, как предложил Маниш Мишра?
В button1_Click вызовите function2 следующим образом
function2(authCode);
Измените свою функцию2 на это:
protected void function2(String authCode)
{
//access authCode here
}
Ответ №2:
Если передача аргументов в последующий вызов метода не является опцией, вы должны использовать HttpContext.Current.Items
. Это коллекция объектов в памяти, которая сохраняется после завершения запроса (или, другими словами, это хранилище для каждого запроса).