4

这段代码有什么问题?该程序旨在复制文件并将其通过电子邮件发送到电子邮件地址,但事实并非如此。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Mail;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

        }
    }

    public void email_send()
   {
    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
    mail.From = new MailAddress("your mail@gmail.com");
    mail.To.Add("to_mail@gmail.com");
    mail.Subject = "Test Mail - 1";
    mail.Body = "mail with attachment";

    System.Net.Mail.Attachment attachment;
    attachment = new System.Net.Mail.Attachment("c:/textfile.txt");
    mail.Attachments.Add(attachment);

    SmtpServer.Port = 587;
    SmtpServer.Credentials = new System.Net.NetworkCredential("your mail@gmail.com", "your password");
    SmtpServer.EnableSsl = true;

    SmtpServer.Send(mail);

}
}

这显示了以下编译器错误:

  1. 预期的类、委托、枚举、接口或结构
  2. 预期的类、委托、枚举、接口或结构
  3. 预期的类、委托、枚举、接口或结构
  4. 预期的类、委托、枚举、接口或结构
  5. 预期的类、委托、枚举、接口或结构
  6. 预期的类、委托、枚举、接口或结构
  7. 类型或命名空间定义,或预期文件结尾预期类、委托、枚举、接口或结构

我能做些什么呢?

4

4 回答 4

18

email_send()方法在类声明之外。它仍在命名空间内,但您还必须将它放在类中。此外,从未调用过该方法。这是死代码。

在类定义中移动该方法,然后从 Form_Load() 中调用该方法

于 2013-05-28T19:45:30.740 回答
4

正是其他人所说的,但是剪切/粘贴这个,你应该纠正错误:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.
using System.Net;
using System.Net.Mail;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {

    }

    public void email_send()
    {
        MailMessage mail = new MailMessage();
        SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
        mail.From = new MailAddress("your mail@gmail.com");
        mail.To.Add("to_mail@gmail.com");
        mail.Subject = "Test Mail - 1";
        mail.Body = "mail with attachment";

        System.Net.Mail.Attachment attachment;
        attachment = new System.Net.Mail.Attachment("c:/textfile.txt");
        mail.Attachments.Add(attachment);

        SmtpServer.Port = 587;
        SmtpServer.Credentials = new System.Net.NetworkCredential("your mail@gmail.com", "your password");
        SmtpServer.EnableSsl = true;

        SmtpServer.Send(mail);

    }
}
}

如您所见,您的email_send方法现在位于类声明中。

于 2013-05-28T19:51:23.223 回答
3

你的方法是在课堂之外的一件事。将其复制到表单 1 类中,它应该可以清除任何智能感知问题

于 2013-05-28T19:45:11.393 回答
1

email_send 方法未在类中定义。

于 2013-05-28T19:45:14.620 回答