• c#之重载


    1. 方法签名

     由方法的名称,类型形参的个数和它的每一个形参(从左到右的顺序)的类型和种类(值,引用或输出)组成。方法签名不含返回类型。

    同一个类中定义多个方法名相同、参数列表(参数类型,参数个数)不同的方法,这样的形式我们称为方法重载。

    比如下面例子:

      class Program
        {
            static void Main(string[] args)
            { 
                Console.ReadKey();
            }
            public int Add(int a,int b)
            {
                return a + b;
            }
            public int Add(int a, int b,int c)
            {
                return a + b;
            }
            /// <summary>
            /// 类型形参
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="a"></param>
            /// <param name="b"></param>
            /// <param name="c"></param>
            /// <returns></returns>
            public int Add<T>(int a, int b, int c)
            {
                return a + b;
            }
            public double Add(double a, double b)
            {
                return a + b;
            }
    
    
    
    
    
        }

     2.下面是调用方法的时候的内存管理

    class Program
        {
            static void Main(string[] args)
            {
                MyClass myClass = new MyClass();
                myClass.GetConeVoloume(1,1);
                Console.ReadKey();
            }
            
    
        }
    
        class MyClass
        {
           
            public double GetCircleArea(double r)
            {
                return Math.PI * r * r;
            }
            public double GetCylinderVolume(double a, double b)
            {
                double x = GetCircleArea(a);
                return x*b;
            }
            public double GetConeVoloume(double a, double b)
            {
                double x = GetCylinderVolume(a,b);
                return x/3;
            }
    
    
    
        }

    其中,下面的这段代码中的输入参数是又调用函数来确定的,所以GetConeVoloume方法的2个参数由Main方法控制。调用这个方法的时候,会在栈内存中找2个空闲内存区域,根据方法参数中从左往右的原则往栈中压入数据,先放a,再放b。当这个方法执行完毕的时候,栈上的对象才会进行释放,是先进后出的原则。

      MyClass myClass = new MyClass();
                myClass.GetConeVoloume(1,1);
  • 相关阅读:
    多线程
    python 进程间通信
    python 生产者消费者模型
    多线程锁
    io多路复用(三)
    div 加滚动条的方法
    10矩形覆盖
    11.二进制中1的个数
    12数值的整数次方
    9 变态跳台阶
  • 原文地址:https://www.cnblogs.com/anjingdian/p/13193441.html
Copyright © 2020-2023  润新知