Как перегрузка функции экономит память

Как перегрузка функций экономит память?

В чем разница между следующими двумя типами определений функций, и какой из них следует использовать?

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)

-6

Решение

Как перегрузка функций экономит память.

Во время выполнения это не так. Перегрузка разрешается во время компиляции, так что это не влияет на производительность.

В чем разница между следующими двумя типами функций
определения,

Это перегруженные функции, принимающие несколько параметров, которые IMO были бы более удобочитаемыми

какой из них следует использовать?

Перегрузка будет более читабельной, (вы также можете увидеть Перегрузка членов — 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);
8

Другие решения

Перегрузка функций не экономит память.

4

Когда мы пишем перегруженный метод, он не экономит место и не повышает производительность. Он используется только для лучшей читаемости и реализации полиморфизма.

3

Ну, разница в названии ;-).
О том, какой из них следует использовать … длинные имена используют еще несколько байтов памяти, но это должно быть незначительным в любой системе, которая может работать с C # -4, так что просто используйте то, что вам больше нравится.

Я бы лично использовал:

Add(a,b);
Add(a,b,c);
Add(a,b,c,d);

XXXNumbers избыточен со списком параметров, поэтому он ничего не предоставляет.

И заглавная версия просто безобразна.

2

Кстати, это просто вызовы функций, а не их прототипы / определения

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

Перегрузка функций никогда не экономит место, внутренний компилятор создает две разные версии функций и в зависимости от вызова вызывает разные версии функций.

Перегрузка функций делает ваш код более читабельным.

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
По вопросам рекламы [email protected]