Я создал класс для хранения некоторые данные электронной почты:Переменные сброса по умолчанию после создания экземпляра
public class EmailClass{
public string sender;
public string receiver;
public string message;
public EmailClass(string sender, string receiver, string message){
this.sender = sender;
this.receiver = receiver;
this.message = message;
}
public string Sender { get; set; }
public string Receiver { get; set; }
public string Message{ get; set; }
}
В моем веб-приложение, у меня есть страница: MyHome.aspx.cs
(создан в том же пространстве имен EmailClass
):
public partial class MyHome: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
EmailClass obj = new EmailClass("sender", "receiver", "a message");
Response.Write("Info: " + obj.Sender + " " + obj.Receiver + " " + obj.Message);
}
}
То, что я ожидал, когда Home.aspx загружен является дисплей:
Info: sender receiver a message
Тем не менее, это показывает
Info:
Кажется, что переменные экземпляра из EmailClass
сброса значения по умолчанию, когда я пытаюсь получить доступ к ним в загрузке страницы. Для целей отладки я добавил MessageBox для отображения значений переменных экземпляра в конструкторе (был вызван конструктор и значения были установлены во время создания экземпляра).
My quesiton: Итак, что вызывает сброс/отсутствие значений переменных экземпляра?
Примечание: Когда я явно устанавливаю значения объекта, он отображался во время загрузки страницы. I.e .: obj.Sender = "sender";
.
Ах, я вижу. Проводили так много времени, пытаясь выяснить, что произошло. Я пришел из фона Java и ожидаю, что компилятор будет различать this.xxx и xxx. Большое спасибо. Я прочитаю об автоматических свойствах. Примите ваш ответ, когда тайм-аут закончен. – user3437460
Вы можете начать здесь: https://msdn.microsoft.com/en-us/library/bb384054.aspx Счастливое кодирование .... –
@ user3437460 - это не связано с 'this.xxx' vs' xxx', как я надеюсь, следующий пример Джероена. –