我不知道为什么会出现此错误。看起来很初级。无论如何,我有一个名为 EmailSender 的单例类。下面的代码很简短。问题是我不能在 MainWindow 类中使用 sender。我尝试的任何事情,例如 sender.Send() 都被视为我已经完成了 asdafsafas.Send()。它被视为随机字符串。不知道为什么会这样。
using System;
using System.Net.Mail;
using System.Windows.Forms;
namespace SendMail
{
public partial class MainWindow : Form
{
#region Private variables
private MailMessage msg = new MailMessage();
private EmailSender sender = EmailSender.GetInstance();
#endregion
public MainWindow()
{
InitializeComponent();
}
private MailMessage PrepareMailMessage()
{
return msg;
}
private void btnSend_Click(object sender, EventArgs e)
{
}
}
}
这是 GetInstance 方法:
public static EmailSender GetInstance()
{
return _instance ?? (_instance = new EmailSender());
}
最佳答案
这是因为您定义此方法的方式(sender 是一个参数)。它首先 找到方法参数,而不是您的类级变量。你可以限定这个:
private void btnSend_Click(object sender, EventArgs e)
{
// sender here is the "(object sender, " paramater, so it's defined
// as system object.
// use this instead:
this.sender.Send(); // The "this" will make the class find the instance level variable instead of using the "object sender" argument
}
关于C# 无法解析符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8014579/