为什么c#casting语法被定义为(AnyType)obj而不是AnyType(obj)?

为什么c#casting语法被定义为(AnyType)obj而不是AnyType(obj)?,c#,C#,为什么c#casting语法被定义为(AnyType)obj而不是AnyType(obj)?为了使语法尽可能保持c-like,这样可以避免将cast与函数调用混淆。为了使语法尽可能保持c-like,这样可以避免将强制转换与函数调用混淆。避免将强制转换与构造函数调用混淆。理解!虽然C++允许代码> AyType(Objy:Objy:Objy/,但它对C语言的使用(尤其是因为它更接近于干净的C++而不是清理C)不会有任何外来的影响。我认为,避免函数调用模糊性比C语言的方式更简单,这是C++的主要原因

为什么c#casting语法被定义为(AnyType)obj而不是AnyType(obj)?

为了使语法尽可能保持c-like,这样可以避免将cast与函数调用混淆。

为了使语法尽可能保持c-like,这样可以避免将强制转换与函数调用混淆。

避免将强制转换与构造函数调用混淆。理解!虽然C++允许代码> AyType(Objy:Objy:Objy/<代码)>,但它对C语言的使用(尤其是因为它更接近于干净的C++而不是清理C)不会有任何外来的影响。我认为,避免函数调用模糊性比C语言的方式更简单,这是C++的主要原因。避免使用构造函数调用混淆CAST。理解!虽然C++允许代码> AyType(Objy:Objy:Objy/<代码)>,但它对C语言的使用(尤其是因为它更接近于干净的C++而不是清理C)不会有任何外来的影响。我认为,避免C++中的函数调用歧义比C语言的方式更重要,这是主要原因。