Как передать Page в качестве параметра ref функции - PullRequest
2 голосов
/ 20 января 2009

Хотелось бы узнать, как я могу выставить страницу как параметр Ref для функции

Это то, что я хочу сделать

 
  public partial class HomePage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!SetupUserPermission.isSessionExpired())
        {
            string UserId = Session["UserId"].ToString();
            SetupUserPermission.SetupUserRights(ref this.Page, Convert.ToInt32(UserId));
        }


    }
}
 

Ответы [ 3 ]

4 голосов
/ 20 января 2009

Вы не можете передать свойство по ссылке в C #. Почему вы хотите передать страницу по ссылке в этом случае?

В VB вы можете передать свойство по ссылке, и эквивалент в этом случае будет:

Page tmp = Page;
SetupUserPermission.SetupUserRights(ref tmp, Convert.ToInt32(UserId));
Page = tmp;

Вы действительно уверены, что хотите это сделать?

Я подозреваю, что вы на самом деле не хотите передавать его по ссылке, и вы просто немного озадачены передачей параметров. См. мою статью на тему для получения дополнительной информации.

3 голосов
/ 20 января 2009

Почему вы хотите передать его ref? Мне кажется, что обычный проход должен делать; это передает ссылку по значению - это то, что вы хотите (если вы не создаете новую страницу ...).

Кроме того, не "this" ли Page? Разве вы не можете просто:

SetupUserPermission.SetupUserRights(this, ...);

где SetupUserRights занимает Page?

См. Также: страница Джона Скита о передаче параметров в C # ; это может исправить некоторые заблуждения (подсказка: Page это ссылочный тип (класс)).

0 голосов
/ 20 января 2009

Если вам не нужно изменить ссылку на это. Страница в нисходящих вызовах и ссылка на нее отражает изменения в восходящем направлении, нет причин передавать это по ссылке. В любом случае я не думаю, что это работает со свойствами, особенно получить только такие, как этот. Страница.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...