[Debutant] Classes

Résolu
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013 - 20 nov. 2006 à 20:03
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013 - 20 nov. 2006 à 21:13
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

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
20 nov. 2006 à 20:37
Salut

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

Mx
MVP C# 
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
20 nov. 2006 à 20:40
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
*/
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
20 nov. 2006 à 20:41
Ca fesait longtemps que je ne m'étais pas fait avoir :p

/*
coq
MVP Visual C#
CoqBlog
*/
0
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013
20 nov. 2006 à 21:13
merci beaucoup^^
0
Rejoignez-nous