Передача значения из одной функции в другую

#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 . Это коллекция объектов в памяти, которая сохраняется после завершения запроса (или, другими словами, это хранилище для каждого запроса).