C# 函数重载如何节省内存

C# 函数重载如何节省内存,c#,c++,oop,c#-4.0,C#,C++,Oop,C# 4.0,函数重载如何节省内存 以下两种类型的函数定义之间有什么区别,应该使用哪一种 (一) (二) 函数重载不会节省内存。当我们编写重载方法时,它不会节省任何空间,也不会提高性能。它只用于更好的可读性和实现多态性 函数重载如何节省内存 在运行时,它不会重载是在编译时解决的,因此对性能没有影响 以下两种功能之间有什么区别 定义 它们是重载函数,使用多个参数,IMO更易于阅读 应该使用哪一种 重载将更具可读性(您也可能会看到),但如果您使用的是C#4.0或更高版本,那么您也可以使用 将其定义为: publi

函数重载如何节省内存

以下两种类型的函数定义之间有什么区别,应该使用哪一种

(一)

(二)


函数重载不会节省内存。

当我们编写重载方法时,它不会节省任何空间,也不会提高性能。它只用于更好的可读性和实现多态性

函数重载如何节省内存

在运行时,它不会重载是在编译时解决的,因此对性能没有影响

以下两种功能之间有什么区别 定义

它们是重载函数,使用多个参数,IMO更易于阅读

应该使用哪一种

重载将更具可读性(您也可能会看到),但如果您使用的是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)
ADD(a,b)
ADD(a,b,c)
ADD(a,b,c,d)
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)