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);

 

posted @   安静点--  阅读(500)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示