关键字“auto"c++和“动态”;c#
本文关键字:动态 c++ quot 关键字 auto | 更新日期: 2023-09-27 18:04:44
c#中的"dynamic"关键字是否像c++中的"auto"一样工作
更多细节:
auto a = 5; //C++
dynamic a = 5; //C#
它们相似吗?
不,它们不相似。我猜,auto
在c#中与var
相似。
auto
解析到编译时,而不是运行时。
在你的代码中auto关键字指示编译器使用初始化已声明变量的表达式,用于推断其类型。
auto a = 5; //C++
a.ToUpper(); // Compile time error
,
dynamic a = 5; //C#
a.ToUpper(); //No error at compile time since it will resolve @ runtime
但是在运行时会抛出错误,因为int
类型没有ToUpper()
方法
No.
c#中与auto
等价的是var
——编译器会推断出相应的类型。dynamic
是在运行时确定的,因此它永远不会抛出编译错误。从MSDN:
"在编译时,假定类型为动态的元素支持任何操作。"
如果代码无效,它将在运行时抛出错误。