函数重载如何节省内存?
以下两种类型的函数定义之间有什么区别?应该使用哪种函数?
1)
ADD(a,b)
ADD(a,b,c)
ADD(a,b,c,d)
2)
AddTwoNumbers(a,b)
AddThreeNumbers(a,b,c)
AddFourNumbers(a,b,c,d)
答案 0 :(得分:8)
函数重载如何节省内存。
在运行时,它没有。 在编译时解决了重载,因此它对性能没有影响。
以下两种功能有什么区别 定义,
它们是重载函数,采用多个参数,IMO更具可读性
应该使用哪一个?
重载更具可读性(您可能也会看到Member Overloading - MSDN)但如果您使用的是C#4.0或更高版本,那么您也可以使用optional parameters。
将其定义为:
public int ADD(int a, int b, int c = 0, int d = 0)
{
//..... your code
return result;
}
称之为:
ADD(2, 3);
ADD(2, 3, 4);
ADD(2, 3, 4, 5);
答案 1 :(得分:4)
函数重载不会节省内存。
答案 2 :(得分:3)
当我们编写重载方法时,它不会保存任何空间而不会提高性能。它仅用于更好的可读性和实现多态性。
答案 3 :(得分:2)
嗯,不同的是名字;-)。 关于你应该使用哪一个...长名称使用更多字节的内存,但在任何可以运行C#-4的系统中都可以忽略不计,所以只需使用你最喜欢的。
我个人会使用:
Add(a,b);
Add(a,b,c);
Add(a,b,c,d);
XXXNumbers
对参数列表来说是多余的,因此它什么都不提供。
全大写版本只是丑陋。
答案 4 :(得分:0)
1)
ADD(a,b)
ADD(a,b,c)
ADD(a,b,c,d)
这些将充当重载函数
2)
AddTwoNumbers(a,b)
AddThreeNumbers(a,b,c)
AddFourNumbers(a,b,c,d)
这三个将扮演三个不同的功能(不过载)。
重载函数具有相同的函数名称和不同数量的参数。 内部“名称修改”发生,编译器必须创建三个不同的功能。它在保存内存方面没有多大帮助,但提高了可读性
答案 5 :(得分:0)
函数重载从不节省空间,内部编译器创建两个不同版本的函数,并根据调用它将调用不同版本的函数。
函数重载使代码更具可读性。
1)
ADD(a,b)
ADD(a,b,c)
ADD(a,b,c,d)
2)
AddTwoNumbers(a,b)
AddThreeNumbers(a,b,c)
AddFourNumbers(a,b,c,d)
这与重载相同,但上面的代码更具可读性。