除了用于指定表达式中的运算顺序外,圆括号还用于指定强制转换或类型转换:
double x = 1234.7; int a; a = (int)x; // cast double to int
强制转换显式调用从一种类型到另一种类型的转换运算符;如果未定义这样的转换运算符,强制转换将失败。若要定义转换运算符,请参见 explicit 和 implicit。
不能重载 () 运算符。
有关更多信息,请参见强制转换(C# 编程指南)。
强制转换表达式可能导致不明确的语法。例如,表达式 (x)–y 既可以解释为强制转换表达式(从类型 –y 到类型 x 的强制转换),也可以解释为结合了带括号的表达式的相加表达式(计算 x – y 的值)。
有关更多信息,请参见 C# 语言规范中的以下各章节:
1.6.6.5 运算符
7.2 运算符