Maison >développement back-end >Tutoriel C#.Net >Compilation des connaissances de base en C# : connaissances de base (5) surcharge des méthodes

Compilation des connaissances de base en C# : connaissances de base (5) surcharge des méthodes

黄舟
黄舟original
2017-02-11 13:13:261186parcourir

Les enseignants ont tous cette méthode de cours. Un enseignant a d'abord enseigné dans une région montagneuse isolée de l'ouest en se tenant devant un tableau en bois dans la classe. Après quelques années de bons résultats, il a été transféré dans un établissement légèrement meilleur. ville et je me suis assis devant la salle de classe. J'utilise un équipement multimédia pour enseigner. Quelques années plus tard, j'ai passé l'examen de doctorat. Après avoir obtenu mon diplôme, j'ai continué à travailler comme enseignant, mais maintenant je reste à la maison et j'enseigne à distance. devant l'ordinateur. Ce sont toutes des méthodes magistrales, et il existe différents processus d'exécution et résultats de sortie dans différentes conditions (différents paramètres). C'est une surcharge.
La définition de la surcharge est la suivante : dans une même classe, ou dans une sous-classe de cette classe, il existe plusieurs méthodes portant le même nom, qui sont surchargées. Cependant, la méthode a le même nom mais la liste des paramètres doit être différente. . Dans le cas d'une sous-classe, la sous-classe a une méthode portant le même nom que la méthode de la classe parent mais une liste de paramètres différente, et la méthode portant ce nom dans la classe parent doit être protégée et publique.
Regardez le code ci-dessous :
Après l'examen d'entrée à l'université de l'école, plusieurs étudiants ont été admis à l'Université de Pékin et à l'Université Tsinghua, l'école a donc invité les professeurs à dîner dans un hôtel cinq étoiles. Lorsque vous accueillez les clients à la porte, saluez-les : M./Mme, bienvenue !

using System;

namespace YYS.CSharpStudy.MainConsole
{
    public class YSchool
    {
        private int id = 0;

        private string name = string.Empty;

        public int ID
        {
            get
            {
                return this.id;
            }
        }

        public string Name
        {
            get
            {
                return name;
            }
        }

        public YSchool()
        {
            this.id = 0;

            this.name = @"清华大学附中";
        }

        public  YSchool(int id, string name)
        {
            this.id = id;

            this.name = name;
        }

        /// <summary>
        /// 构造器
        /// </summary>
        public  YSchool(int id)
        {
            this.id = id;

            this.name = @"陕师大附中";
        }
    }

    public class YTeacher
    {
        private int id = 0;

        private string name = string.Empty;

        private YSchool school = null;

        private string introDuction = string.Empty;

        private string imagePath = string.Empty;

        public int ID
        {
            get
            {
                return id;
            }
        }

        public string Name
        {
            get
            {
                return name;
            }
        }

        public YSchool School
        {
            get
            {
                if (school == null)
                {
                    school = new YSchool();
                }
                return school;
            }

            set
            {
                school = value;
            }
        }

        public string IntroDuction
        {
            get
            {
                return introDuction;
            }

            set
            {
                introDuction = value;
            }
        }

        public string ImagePath
        {
            get
            {
                return imagePath;
            }

            set
            {
                imagePath = value;
            }
        }
        /// <summary>
        /// 构造器
        /// </summary>
        public YTeacher(int id, string name)
        {
            this.id = id;

            this.name = name;
        }

        /// <summary>
        /// 构造器
        /// </summary>
        public YTeacher(int id, string name, YSchool school)
        {
            this.id = id;

            this.name = name;

            this.school = school;
        }

        /// <summary>
        /// 给学生讲课的方法
        /// </summary>
        public void ToTeachStudents()
        {
            Console.WriteLine(string.Format(@"{0} 老师教育同学们: Good Good Study,Day Day Up!", this.name));
        }
        /// <summary>
        /// 惩罚犯错误学生的方法
        /// </summary>
        /// <param name="punishmentContent"></param>
        public void PunishmentStudents(string punishmentContent)
        {
            Console.WriteLine(string.Format(@"{0} 的{1} 老师让犯错误的学生 {2}。", this.School.Name, this.name, punishmentContent));
        }
    }

    public class MrTeacher : YTeacher
    {
        public MrTeacher(int id, string name)

            : base(id, name)
        {

        }

        /// <summary>
        /// 扩展的方法,刮胡子方法。
        /// </summary>
        public void Shave()
        {
            Console.WriteLine(string.Format(@"{0} 老师用飞科剃须刀刮胡子。",this.Name));
        }
    }

    public class MisTeacher : YTeacher
    {
        public MisTeacher(int id, string name)

            : base(id, name)
        {

        }

        /// <summary>
        /// 扩展方法,护肤的方法
        /// </summary>
        public void SkinCare()
        {
            Console.WriteLine(string.Format(@"{0} 老师用香奈儿护肤霜护肤。", this.Name));
        }
    }

    public class FiveStarsHotel
    {
        /// <summary>
        /// 重载
        /// </summary>
        public void Welcome(MrTeacher mTeacher)
        {
            Console.WriteLine(@"先生,欢迎光临!");
        }
        /// <summary>
        /// 重载
        /// </summary>
        public void Welcome(MisTeacher misTeacher)
        {
            Console.WriteLine(@"女士,欢迎光临!");
        }
    }
}
using System;

namespace YYS.CSharpStudy.MainConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            FiveStarsHotel hotel = new FiveStarsHotel();

            MrTeacher mrTeacher = new MrTeacher(1, @"牛轰轰");

            Console.WriteLine(@"牛轰轰 来了");

            hotel.Welcome(mrTeacher);//男老师进门

            MisTeacher misTeacher = new MisTeacher(2, @"郝漂靓");

            Console.WriteLine(@"郝漂靓 来了");
            
            hotel.Welcome(misTeacher);//女老师进门

            Console.ReadKey();
        }
    }
}

Résultat :

En regardant le code ci-dessus, les constructeurs de YTeacher et YSchool sont surchargés.
L'avantage de la surcharge est qu'elle peut rendre la logique plus claire. Par exemple, dans le code ci-dessus, la méthode Welcome peut en fait écrire une méthode, puis utiliser des instructions if else ou switch pour juger, et enfin afficher le résultat. Mais nous réalisons un projet non seulement pour compléter une certaine fonction, mais aussi pour rendre le code hautement lisible, clair en logique et facile à maintenir. Par conséquent, nous devons rendre le code logiquement plus proche de la logique du monde réel. L'utilisation de la surcharge peut rendre le code plus facile à comprendre et les étapes d'exécution intuitives.

Ce qui précède est la compilation des connaissances de base de C# : connaissances de base (5) surcharge des méthodes. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn