我已經得到了獲取用戶輸入(電子郵件和密碼)的代碼,并且我已經將其轉移到我的主WPF表單中,現在我正試圖從另一個類中訪問這些變數,并且正在努力做到這一點,非常感謝任何幫助。
這是變數的位置:
public partial class MainWindow : Windowpublic MainWindow(string clientEmail。string clientPass)?
{
InitializeComponent()。
string email = clientEmail;
string password = clientPass;
}
這就是我希望能夠訪問代碼的地方
public class emailSender
{
virtual public bool sendEmail(string recEmail。string usrSubject, string usrBody)?
{
try
{
var smtpClient = new SmtpClient("smtp.gmail.com" )
{
埠 = 587。
Credentials = new NetworkCredential(email, password)。
EnableSsl = true。
};
smtpClient.Send(email, recEmail, usrSubject, usrBody);
MessageBox.Show("電子郵件成功發送")。
return true。
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString())。
return false;
}
}
uj5u.com熱心網友回復:
你可以這樣做的方法之一是使用應用程式設定來存盤全域變數。
第1步:在Visual Studio中進入 "Project[app name] Properties"。
第二步:創建全域變數。
第2步:創建2個設定并命名為clientEmail和clientPass。 確保它們被設定為用戶范圍并且是字串型別的。
第三步:創建2個設定,并將其命名為clientEmail和clientPass,確保它們被設定為用戶范圍,并且是字串型別。
第3步:向你新創建的設定寫入資料:
public partial class MainWindow 。Windowstring UserEmail = "[email protected]"/span>;
string UserPassword = "12345";
public MainWindow()
{
InitializeComponent()。
Properties.Settings.Default.clientEmail = UserEmail;
Properties.Settings.Default.clientPass = UserPassword。
}
第4步:從你新創建的屬性中讀取:
string email = Properties.Settings.Default.clientEmail;
string password = Properties.Settings.Default.clientPass。
第5步:如果你希望保存你的設定:
Properties.Settings.Default.Save()。
uj5u.com熱心網友回復:
首先,你應該考慮將你的變數轉移到MainWindow中是否是你需要做的。看起來你在那里不需要它們。下一件事是看看你從哪里呼叫sendEmail。你可以把它們添加到sendEmail的方法呼叫中:
你可以訪問那里的變數嗎?
virtual public bool sendEmail(string recEmail。string usrSubject, string usrBody, string clientEmail, string clientPass)
{
//電子郵件發送代碼。
}
如果你真的想讓它們出現在MainWindow中,你必須把它們作為一個公共變數來存盤:
public partial class MainWindow : Windowpublic string email。
public string password;
public MainWindow(string clientEmail。string clientPass)?
{
InitializeComponent()。
email = clientEmail;
密碼=clientPass。
}
...
}
現在你可以做到:
public class emailSender
{
//我們需要一個對主視窗的參考。
private MainWindow mainWindow。
public emailSender(MainWindow mainWindow)
{
//在構建郵件發送者時添加mainWindow的參考。
this.mainWindow = mainWindow;
}
virtual public bool sendEmail(string recEmail。string usrSubject, string usrBody)
{
var smtpClient = new SmtpClient("smtp.gmail.com" )
{
埠 = 587,
//現在我們可以訪問mainWindow的變數。
Credentials = new NetworkCredential(mainWindow.email, mainWindow.password)。
EnableSsl = true,
};
//做郵件發送代碼。
}
}
仍然有許多更好的方法來做到這一點。要使用它們,你必須考慮變數應該存盤在哪里,哪些類需要訪問它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/324493.html
標籤:
下一篇:彈出視窗風格:背景顏色


