Home Backend Development C#.Net Tutorial C# basic knowledge compilation: basic knowledge (5) overloading of methods

C# basic knowledge compilation: basic knowledge (5) overloading of methods

Feb 11, 2017 pm 01:13 PM

Teachers all have this method of lecturing. A teacher first taught in a remote mountainous area in the west by standing in front of a wooden blackboard in the classroom. After a few years of good performance, he was transferred to a slightly better city and sat in front of the classroom. I use multimedia equipment to teach. A few years later, I took the Ph.D. exam. After graduation, I continued to work as a teacher, but now I lie at home and teach remotely in front of the computer. They are all lecture methods, and there are different execution processes and output results under different conditions (different parameters). This is overloading.
The definition of overloading is: in the same class, or in a subclass of this class, there are several methods with the same name, which are overloaded. However, the method has the same name but the parameter list must be different. In the case of a subclass, the subclass has a method with the same name as the parent class method but a different parameter list, and the method with this name in the parent class must be protected and public.
Look at the code below:
After the college entrance examination, several students were admitted to Peking University and Tsinghua University, so the school invited the teachers to have dinner in a five-star hotel. When greeting customers at the door, greet them: Mr./Ms., welcome!

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(@"女士,欢迎光临!");
        }
    }
}
Copy after login
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();
        }
    }
}
Copy after login

Result:

Looking at the above code, the constructors in YTeacher and YSchool are overloaded.
The advantage of overloading is that it can make the logic clearer. For example, in the above code, the Welcome method can actually write a method, and then use if else or switch statements to judge, and finally output the result. But we complete a project not only to complete a certain function, but also to make the code highly readable, clear in logic, and easy to maintain. Therefore, we must make the code logically closer to the logic of the real world. Using overloading can make the code easier to understand and the execution steps intuitive.

The above is the compilation of C# basic knowledge: basic knowledge (5) method overloading. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1669
14
PHP Tutorial
1273
29
C# Tutorial
1256
24
Active Directory with C# Active Directory with C# Sep 03, 2024 pm 03:33 PM

Guide to Active Directory with C#. Here we discuss the introduction and how Active Directory works in C# along with the syntax and example.

Random Number Generator in C# Random Number Generator in C# Sep 03, 2024 pm 03:34 PM

Guide to Random Number Generator in C#. Here we discuss how Random Number Generator work, concept of pseudo-random and secure numbers.

C# Data Grid View C# Data Grid View Sep 03, 2024 pm 03:32 PM

Guide to C# Data Grid View. Here we discuss the examples of how a data grid view can be loaded and exported from the SQL database or an excel file.

Factorial in C# Factorial in C# Sep 03, 2024 pm 03:34 PM

Guide to Factorial in C#. Here we discuss the introduction to factorial in c# along with different examples and code implementation.

The difference between multithreading and asynchronous c# The difference between multithreading and asynchronous c# Apr 03, 2025 pm 02:57 PM

The difference between multithreading and asynchronous is that multithreading executes multiple threads at the same time, while asynchronously performs operations without blocking the current thread. Multithreading is used for compute-intensive tasks, while asynchronously is used for user interaction. The advantage of multi-threading is to improve computing performance, while the advantage of asynchronous is to not block UI threads. Choosing multithreading or asynchronous depends on the nature of the task: Computation-intensive tasks use multithreading, tasks that interact with external resources and need to keep UI responsiveness use asynchronous.

Patterns in C# Patterns in C# Sep 03, 2024 pm 03:33 PM

Guide to Patterns in C#. Here we discuss the introduction and top 3 types of Patterns in C# along with its examples and code implementation.

Prime Numbers in C# Prime Numbers in C# Sep 03, 2024 pm 03:35 PM

Guide to Prime Numbers in C#. Here we discuss the introduction and examples of prime numbers in c# along with code implementation.

How to change the format of xml How to change the format of xml Apr 03, 2025 am 08:42 AM

There are several ways to modify XML formats: manually editing with a text editor such as Notepad; automatically formatting with online or desktop XML formatting tools such as XMLbeautifier; define conversion rules using XML conversion tools such as XSLT; or parse and operate using programming languages ​​such as Python. Be careful when modifying and back up the original files.

See all articles