Изменить параметр метода в методе или вернуть результат

Вернуть значение

Почему?

Правильность, удобочитаемость и самодокументирование

Преднамеренный и простой .cs-file для понимания код лучше, чем csharp код побочного эффекта. Учтите:

float area = pi * Square(r);

против

Square(r);
float area = pi * r;
// ... intervening code
float x = r * 5;  // did you mean to use the original r or r-squared here?

Также c#-language рассмотрите преимущества c# краткости за счет возможности .net-framework комбинирования в первом примере.

Рассмотрим c# сами методы, сравните:

int DoSomething(int value)
   { return value+1; }

Что visual-c# совершенно очевидно правильно. по c#.net сравнению с

void DoSomething(int value)
   { value++; }

Что кажется правильным dotnet и прекрасно скомпилируется, но .net на самом деле это просто visual-c# бесполезно. На самом деле .cs-file вам нужно следующее:

void DoSomething(ref int value)
   { value++; }

// client code:
DoSomething(ref a);

Переменные дешевы

Многие c#-language переменные с правильными dot-net именами предпочтительнее, чем visual-c# несколько повторно используемых c# переменных общего назначения. Не dotnet поддавайтесь искушению преждевременно dot-net оптимизировать, вероятность csharp того, что вам нужно будет .cs-file сократить количество локальных visual-c# переменных для повышения csharp производительности вашей c-sharp системы, космически мала. Опять же, переменные дешевы, НЕ ИСПОЛЬЗУЙТЕ ПЕРЕМЕННЫЕ ПОВТОРНО!

Тестируемость

Учтите:

Assert.IsTrue(Square(2) == 4);

против

float a = 2;
Square(a);
Assert.IsTrue(a == 4);

У .net-framework избежания мутации есть много c#-language других преимуществ перед .net-framework возвратом значения. Это не c#.net просто случайность, что математики csharp определяют функцию как отображение dot-net входных значений и выходных c# значений.

c#

.net

2022-10-14T23:13:52+00:00