are the two statements same ?
Yes. Just as
int x = 2 + 2;
and
int x = (2 + 2);
are the same.
What's the difference?
There is no difference. They're the same.
There are some rare cases in which there should be a difference between a parenthesized and an unparenthesized expression, but the C# compiler actually is lenient and allows them. See Is there a difference between return myVar vs. return (myVar)? for some examples.
If they are same then why are there braces for equating the value?
I don't understand the question. Can you clarify the question?
A question you did not ask:
Why is it legal to say "int i = (i = 20);"
It is a strange thing to do, but legal. The specification states that int i = x;
is to be treated the same as int i; i = x;
So therefore this should be the same as int i; i = (i = 20);
.
Why then is that legal? Because (1) the result of an assignment operator is the value that was assigned. (See my article on the subject for details: http://blogs.msdn.com/b/ericlippert/archive/2010/02/11/chaining-simple-assignments-is-not-so-simple.aspx) And (2) because the definite assignment checker ensures that the local variable is not written to before it is read from. (It is never read from in this case; it is written to twice.)