關於在C#中對函數重載理解

      函數重載是個什麼概念,才接觸的這個概念的時候我也是徹底昏了,還在本身看看了書後就理解了。那什麼是函數重載呢?我我的理解的是在同一個做用域下有多個同名的函數,可是他們的形參的類型是不一樣的,或者參數個數是不一樣的。當咱們調用這些函數時,怎麼判斷咱們調用的是那一個函數呢,這個就要看你在使用重載函數時所傳參數的類型或者參數個數。好了,話不說。看看代碼就知道了。函數

using System;
namespace overload
{
    class a
    {
        public void print()
        {
            Console.WriteLine("無參,無返回值的print");
        }
        public void print(int i)
        {
            Console.WriteLine("這個是有參有返回值的print");   
        }
        public void print(double i)
        {
            Console.WriteLine("這個是同參數個數,可是不一樣參數類型的print");
        }
        public void print(int i, int j)
        {
            Console.WriteLine("這個是參數同類型,可是不一樣個數的print");
        }
        public void print(double i, double j)
        {
            Console.WriteLine("這個是不一樣參數類型,不一樣參數個數的print");
        }
        //還能夠寫更多的重載print,我只是寫了幾個特別的,體現出函數重載的特性就好。
        //這裏都是的是無返回值的函數重載,有返回值的函數重載也是同樣的。固然不能經過是否有返回值來函數重載。
        //函數重載的要點是:相同函數名,不一樣形參類型,或者不一樣形參個數就好。。
    }
    class b
    {
        static void Main()
        {
            a temp = new a();
            temp.print();
            temp.print(1);
            temp.print(1.0);
            temp.print(1,2);
            temp.print(1.0,2.0);
            Console.ReadKey();
            
        }
    }
}spa

我的理解函數重載的做用:函數重載是能夠減小咱們對函數名的記憶工做。好比在C語言中咱們定義一個輸出函數print,若是咱們輸出不一樣類型的數據時。就要這樣定義,print_int,print_str,print_double。由於在C語言中沒有函數重載這個概念。C語言判斷一個函數就只看函數名。因此對於輸出不一樣類型的數據咱們就只有定義不一樣的函數。可是在C#有了函數重載後。咱們輸出不一樣類型的數據就不用這樣麻煩了。使用相同的函數不一樣數據類型,或者不一樣的形參個數就能夠控制任意不一樣類型的數據的輸出。作用域

相關文章
相關標籤/搜索