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