В дебатах о возвращаемых переменных некоторые члены команды предпочитают метод, позволяющий вернуть результат непосредственно вызывающей стороне, тогда как другие предпочитают объявлять возвращаемую переменную, которая затем возвращается вызывающей стороне (см. Примеры кода ниже)
Аргументом для последнего является то, что он позволяет разработчику, отлаживающему код, находить возвращаемое значение метода, прежде чем он вернется к вызывающей стороне, тем самым облегчая понимание кода: это особенно верно там, где вызовы метода связаны последовательно.
Существуют ли какие-либо рекомендации относительно того, какой из них наиболее эффективен, и / или есть ли другие причины, по которым мы должны использовать один стиль вместо другого?
Благодарность
private bool Is2(int a)
{
return a == 2;
}
private bool Is3(int a)
{
var result = a == 3;
return result;
}
stloc.0
и ldloc.0
во второй версии). Но я думаю, что это происходит только в режиме отладки. И это не очень важно здесь в любом случае.
a = b = c;
и a == b == c
я бы не стал писать что-то похожее, a = b == c
если вы можете. Когда я впервые увидел такую строку кода, мне потребовалось несколько секунд, чтобы понять, что происходит. Этот код выделялся. Я хотел бы поставить круглые скобки a == 3
, но StyleCop это не нравится - хорошая причина использовать версию номер один. Что-то еще: это по сути лямбда, например a => (a == 3)
. Зачем добавлять строку кода в уже раздутую тривиальную функцию?
result
перед возвратом.