关键词";“自动”;C++;及;“动态”;C#

关键词";“自动”;C++;及;“动态”;C#,c#,c++,dynamic,syntax,reference,C#,C++,Dynamic,Syntax,Reference,C中的“dynamic”关键字是否与C中的“auto”类似++ 更多详情: 自动a=5//C++ 动态a=5//C# 它们相似吗?不相似 C#中的auto的等价物是var——编译器将推导出适当的类型动态是在运行时确定的,因此它永远不会抛出编译错误。从MSDN: 在编译时,假定类型为动态的元素支持任何操作 但是,如果代码无效,它将在运行时抛出错误。不,它们不相似。好吧,auto类似于C#中的var auto解析为编译时,而不是运行时 来自MSDN auto关键字指示编译器使用初始化 用于推断其类型

C中的“dynamic”关键字是否与C中的“auto”类似++

更多详情:

自动a=5//C++

动态a=5//C#

它们相似吗?

不相似

C#中的
auto
的等价物是
var
——编译器将推导出适当的类型<代码>动态是在运行时确定的,因此它永远不会抛出编译错误。从MSDN:

在编译时,假定类型为动态的元素支持任何操作


但是,如果代码无效,它将在运行时抛出错误。

不,它们不相似。好吧,
auto
类似于C#中的
var

auto
解析为编译时,而不是运行时

来自MSDN

auto关键字指示编译器使用初始化 用于推断其类型的已声明变量的表达式

所以在你的代码中

auto a = 5; //C++
a.ToUpper(); // Compile time error
但是


但是在运行时它会抛出一个错误,因为
int
类型没有
ToUpper()
方法
auto
在编译时解析,而
dynamic
在运行时解析。
dynamic a = 5; //C# 
a.ToUpper(); //No error at compile time since it will resolve @ runtime