2014-06-29 10 views
0

Я пытаюсь передать значение переменной, сгенерированной в событии click Button1, в 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 
} 
+6

Вы не можете изменить подпись 'function2'? Если функция 'function2' предназначена для вызова только из' Button1_Click', то почему бы ей не передать ее как параметр –

ответ

4

Почему бы вам не использовать параметр, подобный Маниш Мишне?

В Button1_Click, вызовите function2 как этот

function2(authCode); 

Изменить function2 к этому:

protected void function2(String authCode) 
{ 
    //access authCode here 
} 
2

Если передать аргументы последующего вызова метода не вариант, вы должны использовать HttpContext.Current.Items. Это коллекция объектов в памяти, которая длится после завершения запроса (или, другими словами, это хранилище для каждого запроса).