如何使用get和set?

时间:2013-11-07 01:45:29

标签: c#

我有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上都是空的。我想我真的不明白如何使用它。有人可以说出了什么问题吗?谢谢!

2 个答案:

答案 0 :(得分:2)

EmailGT x中的SendEmail与您设置属性的EmailGT x无关。您可能希望更改SendEmail以接受EmailGT作为参数:

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);

答案 1 :(得分: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);