c# compiler-errors

c# documentation



Errores al compilar: "Clase esperada, delegado, enumeraciĆ³n, interfaz o estructura" (4)

¿Qué está mal con este código? Este programa está destinado a copiar un archivo y enviarlo por correo electrónico a una dirección de correo electrónico, pero no es así.

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 [email protected]"); mail.To.Add("[email protected]"); 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 [email protected]", "your password"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); } }

Esto muestra los siguientes errores del compilador:

  1. Clase esperada, delegado, enum, interfaz o struct
  2. Clase esperada, delegado, enum, interfaz o struct
  3. Clase esperada, delegado, enum, interfaz o struct
  4. Clase esperada, delegado, enum, interfaz o struct
  5. Clase esperada, delegado, enum, interfaz o struct
  6. Clase esperada, delegado, enum, interfaz o struct
  7. Tipo o definición de espacio de nombres, o fin de archivo esperado Clase esperada, delegado, enumeración, interfaz o estructura

¿Qué puedo hacer sobre esto?


El método email_send() está fuera de la declaración de clase. Todavía está dentro del espacio de nombres, pero también debe colocarlo dentro de la clase. Además, en ningún momento se llama el método. Es un código muerto.

Mueva el método dentro de su definición de clase y luego llame al método desde dentro de Form_Load ()


El método email_send no está definido dentro de una clase.


Exactamente lo que todos los demás dicen, pero cortar / pegar esto y corregir los errores:

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 [email protected]"); mail.To.Add("[email protected]"); 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 [email protected]", "your password"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); } } }

Como puede ver, su método email_send está ahora dentro de la declaración de clase.


Tu método está fuera de la clase por una cosa. Cópialo en la clase de formulario 1 y debería aclarar cualquier problema intellisense