Joh*_*ell 6 c# c++ casting type-inference
我仍然试图将我的深层次和旧的知识从C/C++映射到我更浅层的.Net知识.今天,时间已经到了C#的"as"(并隐含地"是"和演员).
我的"as"的心智模型是C#的a QueryInterface或dynamic_cast(dynamic_cast带有指针参数,而不是引用).我的问题是双重的:
QueryInterfaceor 相比的相对成本是dynamic_cast多少?是的,比较是公平的,尤其是在处理指针时。三者中的每一个要么成功并返回目标类型的非空指针,要么返回空。
as在 .NET 中使用 COM 对象时,您实际上可以使用该运算符,这使其相当于QueryInterface托管/COM 互操作的少量开销。在 CLR 内部(托管类型之间的转换),与COM 或C++ 中的as运算符相比,该运算符非常轻巧。对于我的代码中出于某种原因不得不使用动态转换的所有地方,我从未见过运算符在分析中显示一个示例 - 并且考虑到我维护了动态类型的运行时绑定语言(StringTemplate ),我认为这意味着什么。:)QueryInterfacedynamic_castas