0

我有4个元素:

  • 一个类 EmailGT.cs(用于获取和设置的东西)
  • 类 Email.cs(实际发送电子邮件)
  • 其他两个 Windows 窗体给用户按下按钮并发送电子邮件

我想使用 get 和 set 来定义消息和接收电子邮件的人。

我已经这样做了:

 class EmailGT
{
    private string _mensagem = string.Empty;
    private string _destinatario = string.Empty;

    public string mensagem
    {
        get { return _mensagem; }
        set { _mensagem = value; }
    }

    public string destinatario
    {
        get { return _destinatario; }
        set { _destinatario = value; }
    }

}
}

在 Email.cs 我有这个(我没有发布整个代码,因为它不是必需的):

 class Email
{
    public void SendEmail()
    {
        EmailGT x = new EmailGT();
        string destinatario = x.destinatario;
        string mensagem = x.mensagem;
        System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
        message.To.Add(destinatario);
        message.Subject = "something";
        message.Body = mensagem;

在 Windows 窗体(两者)中,我有这个:

  EmailGT x = new EmailGT();
  Email z = new Email();
  x.mensagem = "teste 2";
  x.destinatario = "my email";
  z.SendEmail();

但是,Email.cs 上的两个字段都为空。我想我真的不明白如何使用它。有人可以说有什么问题吗?谢谢!

4

2 回答 2

2

EmailGT xin与您在其上设置属性无关SendEmailEmailGT x也许您想更改SendEmail以接受 aEmailGT作为参数:

class Email
{
    public void SendEmail(EmailGT x)
    {
        string destinatario = x.destinatario;
        string mensagem = x.mensagem;
        System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
        message.To.Add(destinatario);
        message.Subject = "something";
        message.Body = mensagem;
        // snip
    }
}

然后你将传递给:EmailGTSendEmail

EmailGT x = new EmailGT();
x.mensagem = "teste 2";
x.destinatario = "my email";

Email z = new Email();
z.SendEmail(x);
于 2013-11-07T01:47:40.717 回答
1

您应该更改SendEmail方法声明以将EmailGT实例作为参数,并在方法中使用该实例,而不是创建局部变量。

public void SendEmail(EmailGT x)
{
    string destinatario = x.destinatario;
    string mensagem = x.mensagem;
    System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
    message.To.Add(destinatario);
    message.Subject = "something";
    message.Body = mensagem;
}

和用法:

EmailGT x = new EmailGT();
x.mensagem = "teste 2";
x.destinatario = "my email";

Email z = new Email();
z.SendEmail(x);
于 2013-11-07T01:48:49.267 回答