函数重载如何节省内存?
以下两种函数定义有什么区别,应该使用哪一种?
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)
函数重载如何节省内存。
在运行时,它不会。重载在编译时解决,因此对性能没有影响。
以下两种类型的函数定义有什么区别,
它们是重载函数,采用多个参数,IMO 将更具可读性
应该使用哪一个?
重载将更具可读性,(您也可能会看到Member Overloading - MSDN)但如果您使用的是 C# 4.0 或更高版本,那么您也可以使用可选参数。
像这样定义它:
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);
函数重载不会节省内存。
当我们编写重载方法时,它不会节省任何空间,也不会提高性能。它仅用于更好的可读性和实现多态性。
好吧,区别在于名称;-)。关于你应该使用哪一个...长名称使用更多字节的内存,但这在任何可以运行 C#-4 的系统中都应该可以忽略不计,所以只使用你最喜欢的。
我个人会使用:
Add(a,b);
Add(a,b,c);
Add(a,b,c,d);
参数列表是多余的XXXNumbers
,所以它什么也没提供。
而且全大写的版本很丑。
顺便说一句,这些只是函数调用,而不是它们的原型/定义
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)
这三个将像三个不同的功能(不重载)。
重载的函数具有相同的函数名称和不同数量的参数。在内部发生“名称修改”,编译器必须创建三个不同的函数。它在节省内存方面没有多大帮助,但提高了可读性
函数重载永远不会节省空间,内部编译器会创建两个不同版本的函数,并且根据调用它会调用不同版本的函数。
函数重载使您的代码更具可读性。
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)
这类似于重载,但上面的代码更具可读性。