2013-02-15 2 views
0

У меня есть класс с именем Global.cs:Общественная переменная доступа

public class Global 
{ 
    private string id= string.Empty; 
    public string Id 
    { 
     get { return id;} 
     set { id= value; } 
    } 
} 

Сейчас в Main классе,

public class Main 
{ 
    public Global objGlobal; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     objGlobal= new Global(); 
     objGlobal.id="XX001"; 
    } 
    public void Setdata() 
    { 
     // Trying to access objGlobal.id value here but it's null 
    } 
} 

Что мне не хватает?

+0

Это не сработает. Что делать, если два пользователя сразу обращаются к вашему сайту? Рассмотрим использование состояния сеанса. – SLaks

+0

Ваше поле и ваша собственность называются 'id'? Это даже компилируется? – dtb

+0

Вы вызываете 'Setdata' перед вызовом' Page_Load'? – dtb

ответ

2

Разве вы не всегда получаете/устанавливаете «Id», а не «id». Поскольку «id» является закрытым.

+0

Рассмотрим сценарий, в котором я получаю информацию о профиле пользователя и сохраняю в переменных при загрузке страницы. Теперь мне нужно несколько моих функций, чтобы использовать эти данные переменных, не передавая их в качестве аргумента функции. Также , Не хотите использовать сеанс. – Rishi

+0

Являются ли эти функции использующими переменные все в одном классе? – UncleDave

+0

Да, в один и тот же класс, но в другой функции – Rishi

0

Значительная оценка: Пример: XX Класс экземпляра много раз.

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

Если вам нужен только статический класс с некоторыми статическими данными, добавьте ключевое слово static как к классу, так и к его членам.

+0

Итак, вы хотите сказать без используя «Session» и «Static». Я не могу сохранить некоторую переменную из класса? – Rishi

+1

@Rishi Вы не можете сохранять ее в классах, созданных внутри каждого веб-запроса, потому что каждый раз, когда запрос выполняется, классы будут воссозданный, теряя все ссылки на старые экземпляры. – AgentFire

Смежные вопросы