当前位置:编程学习 > C#/ASP.NET >>

.net的方法重载

.我现在对.net是有点陌生,希望有人能给我解释解释这个重载到底怎么才算重载。 --------------------编程问答-------------------- 方法名称相同,签名不同
调用的时候根据所给的条件决定调用哪一个 --------------------编程问答-------------------- 参数列表和返回值决定调用的方法 --------------------编程问答-------------------- 方法名称相同,参数不同
--------------------编程问答-------------------- 仅仅方法名相同,系统运行时自动根据条件调用不同的方法 --------------------编程问答-------------------- 看下定义 就OK了
实践得出理论=》理论指导实践
这过程叫教导学习
--------------------编程问答-------------------- 每天回一次贴  --------------------编程问答--------------------
引用 1 楼 zxp8819 的回复:
方法名称相同,签名不同
调用的时候根据所给的条件决定调用哪一个


 精屁 --------------------编程问答-------------------- 给你个简单的例子吧


private void sum()
{

}

private void sum(int a ,int b)
{

}

private void sum(string a ,string b,string c)
{

}

这就是重载 方法名相同都为sum 参数个数同 第一个没有参数 第二个两个参数 第三个三个参数
方法名相同参数个数不同

看下面


private void sum(int a ,int b)
{

}

private void sum(string a ,string b)
{

}


这就不是重载了`是错误  虽然它的参数类型不一样`但是参数个数是相同的  至于为什么 你再去看下定义就明白了 --------------------编程问答--------------------

public partial class NewForm : Form
    {
        double formoldwidth;    //窗体原始宽度   
        double formoldheight;   //窗体原始高度

        protected override void OnLoad(EventArgs e)
        {
            base.OnResize(e);
            double scalewh;     //控件宽高比    
            formoldwidth = (double)this.Width;
            formoldheight = (double)this.Height;
            foreach (Control ctrl in this.Controls)
            {
                scalewh = (double)ctrl.Width / (double)ctrl.Height;
                ctrl.Tag = ctrl.Left + " " + ctrl.Top + " " + ctrl.Width + " " + scalewh.ToString() + " ";     //将控件的Left,Top,Width,宽高比放入控件的Tag内               
            }
        }

        protected override void OnResize(EventArgs e)
        {
            base.OnResize(e);
            double scalex;  //水平伸缩比   
            double scaley;  //垂直伸缩比   
            long i;
            int temppos;
            string temptag;
            double[] pos = new double[4];   //pos数组保存当前控件的left,top,width,height   

            scalex = (double)this.Width / formoldwidth;
            scaley = (double)this.Height / formoldheight;
            foreach (Control ctrl in this.Controls)
            {
                if (ctrl.Tag != null)
                {
                    temptag = ctrl.Tag.ToString();
                    for (i = 0; i <= 3; i++)
                    {
                        temppos = temptag.IndexOf(" ");
                        if (temppos > 0)
                        {
                            pos[i] = Convert.ToDouble(temptag.Substring(0, temppos));   //从Tag中取出参数   
                            temptag = temptag.Substring(temppos + 1);
                        }
                        else
                            pos[i] = 0;
                    }
                    ctrl.Left = (int)(pos[0] * scalex);
                    ctrl.Top = (int)(pos[1] * scaley);
                    ctrl.Width = (int)(pos[2] * scalex);
                    ctrl.Height = (int)((double)ctrl.Width / pos[3]);   //高度由宽高比算出   
                }
            }
        }
    }


希望有帮助 --------------------编程问答--------------------

public partial class NewForm : Form
    {
        double formoldwidth;    //窗体原始宽度   
        double formoldheight;   //窗体原始高度

        protected override void OnLoad(EventArgs e)
        {
            base.OnResize(e);
            double scalewh;     //控件宽高比    
            formoldwidth = (double)this.Width;
            formoldheight = (double)this.Height;
            foreach (Control ctrl in this.Controls)
            {
                scalewh = (double)ctrl.Width / (double)ctrl.Height;
                ctrl.Tag = ctrl.Left + " " + ctrl.Top + " " + ctrl.Width + " " + scalewh.ToString() + " ";     //将控件的Left,Top,Width,宽高比放入控件的Tag内               
            }
        }

        protected override void OnResize(EventArgs e)
        {
            base.OnResize(e);
            double scalex;  //水平伸缩比   
            double scaley;  //垂直伸缩比   
            long i;
            int temppos;
            string temptag;
            double[] pos = new double[4];   //pos数组保存当前控件的left,top,width,height   

            scalex = (double)this.Width / formoldwidth;
            scaley = (double)this.Height / formoldheight;
            foreach (Control ctrl in this.Controls)
            {
                if (ctrl.Tag != null)
                {
                    temptag = ctrl.Tag.ToString();
                    for (i = 0; i <= 3; i++)
                    {
                        temppos = temptag.IndexOf(" ");
                        if (temppos > 0)
                        {
                            pos[i] = Convert.ToDouble(temptag.Substring(0, temppos));   //从Tag中取出参数   
                            temptag = temptag.Substring(temppos + 1);
                        }
                        else
                            pos[i] = 0;
                    }
                    ctrl.Left = (int)(pos[0] * scalex);
                    ctrl.Top = (int)(pos[1] * scaley);
                    ctrl.Width = (int)(pos[2] * scalex);
                    ctrl.Height = (int)((double)ctrl.Width / pos[3]);   //高度由宽高比算出   
                }
            }
        }
    }


希望有帮助 --------------------编程问答-------------------- 。。。

1.方法名称和返回值相同

2.参数个数或参数类型不同 --------------------编程问答-------------------- 满足上述2个条件
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,