zoukankan      html  css  js  c++  java
  • 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之字典
    分支与master切换 | MyEclipse git怎么提交代码
    gitignore的使用详细图解
    1.1(学习笔记)Servlet简介及一个简单的实例
    10.4(java学习笔记)CLOB,BLOB基本操作
    10.3(Java学习笔记)JDBC时间操作
    10.2(java学习笔记)JDBC事务简述
    10.1(java学习笔记)JDBC基本操作(连接,执行SQL语句,获取结果集)
    9.1(java学习笔记)正则表达式
  • 原文地址:https://www.cnblogs.com/anjingdian/p/13193441.html
Copyright © 2011-2022 走看看