Reversing a string - two approaches
Clarity of Approaches

With the first approach, I look at it and I can tell straight away that you are reversing a string.  With the second approach, I need to study it for a minute or two to work out what you're doing.

Unnecessary Code

In the first approach, the check for an empty string is not necessary.  In this case, your logic will not even enter the for loop, resulting in an empty string being returned anyway.

Performance

As you may know, strings are immutable objects in .Net.  It is good practice to use a StringBuilder to create strings in this way, like so:

var reversedString = new StringBuilder(input.Length);
for (int i = input.Length - 1; i &gt;= 0; i--)
{
    reversedString.Append(input[i]);
}
return reversedString.ToString();