[Debutant] Classes [Résolu]

Signaler
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013
-
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013
-
Bonsoir,

j'ai décidé de me mettre au C# etant donné que cela est fiable et assez proche du VB.NET , langage avec lequel je commence a etre assez initié ^^.

Je me suis fait premierement une class avec une fonction pour un envoi simple de mail avec System.Net.Mail ^^, bref ma class est compilé en Release sous visual studio 2005 je me fais un petit projet windows form avec des champs texte et un bouton , au clic du bouton on fait Namespace.Class.Fonction(attributs...); (tout en ayant mis la dll en références) et la bein...
ca marche pas, je tape leNamespace.laClass. et la l'IntelliSense ne me met aucunes fonctions, comme si elle n'existait pas... voici la fonction...

using System;
using System.Collections.Generic;
using System.Text;


using System.Net.Mail;
using System.Windows.Forms;


namespace Network
{
    public class Mail
    {
        #region EnvoiMail(MailAddress MailFrom, MailAddress MailTo, string subject, string body, string SmtpServer, int SmtpPort, Boolean HtmlMail)
        /// <summary>
        /// Fonction d'envoi de mail avec gestion du Smtp et du port
        /// </summary>
        /// Expéditeur

        /// Destinataire

        /// Sujet

        /// Texte

        /// Server smtp

        /// Port

        /// Mail HTML

        /// <returns></returns>
        public Boolean EnvoiMail(MailAddress MailFrom, MailAddress MailTo, string subject, string body, string SmtpServer, int SmtpPort, Boolean HtmlMail)
        {
            int error = 0;
            MailMessage msg = new MailMessage();
            msg.From = MailFrom;
            msg.To.Add(MailTo);
            msg.Subject = subject;
            msg.Body = body;
            msg.IsBodyHtml = HtmlMail;


            msg.SubjectEncoding = Encoding.GetEncoding("iso-8859-15");
            msg.BodyEncoding = Encoding.GetEncoding("iso-8859-15");


            SmtpClient smtp = new SmtpClient();
            smtp.Host = SmtpServer;
            smtp.Port = SmtpPort;
            try { smtp.Send(msg); }
            catch (SmtpException)
            {
               MessageBox.Show("Erreur lors de l'envoi du mail","Erreur",MessageBoxButtons.OK,MessageBoxIcon.Error);
               error = 1;
            }


            if(error == 0)
            {
                return true;
            }
            else
            {
                return false;
            }


            }
        }
        #endregion




    }


 

4 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
Salut

Il faut que ta méthode soit static (tu dois connaitre ce mot clé sous "shared")

Mx
MVP C# 
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Salut,

Pour qu'une méthode soit accessible directement sur le type sans instancier celui ci, elle doit être static (équivalent du Shared VB).

En revanche si ton but était bien de mettre cette méthode en membre d'instance de la classe Mail, il faut que tu crées une instance de cette dernière avant de t'en servir.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Ca fesait longtemps que je ne m'étais pas fait avoir :p

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

merci beaucoup^^