In addition to being used to specify the order of operations in an expression, parentheses are used to perform the following tasks:
Specify casts, or type conversions.
double x = 1234.7; int a; a = (int)x; // Cast double to int
Invoke methods or delegates.
() operator cannot be overloaded.
For more information, see Casting and Type Conversions.
A cast expression could lead to ambiguous syntax. For example, the expression
(x)–y could be either interpreted as a cast expression (a cast of –y to type x) or as an additive expression combined with a parenthesized expression, which computes the value x – y.
For more information about method invocation, see Methods.
C# Language Specification
For more information, see the C# Language Specification. The language specification is the definitive source for C# syntax and usage.