0

私は4つの要素を持っています:

  • クラス EmailGT.cs (取得および設定用)
  • クラス Email.cs (実際にメールを送信するため)
  • ユーザーへの他の 2 つの 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は、プロパティを設定している とは関係ありSendEmailません。おそらく、をパラメータとして受け入れるようEmailGT xに変更したいでしょう:SendEmailEmailGT

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
    }
}

次に、to を渡します: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 に答える