【发布时间】:2017-04-20 22:19:01
【问题描述】:
C#
MyClass myClass = new MyClass();
C++
MyClass* myClass = new MyClass();
C# 代码在内部是否等同于 C++ 代码? C# 代码内部的 myClass 是指代对象还是指针?
【问题讨论】:
-
我不确定你是否应该像这样比较它们。非常粗略地说,在 C++ 中你有引用、指针和值(我知道),在 C# 中你有类和结构。你应该学会相应地使用它们。它们都有不同的用法
-
@Default 在 C# 中我们通常将它们称为“引用类型”和“值类型”
-
@BradleyDotNET 这绝对是一个更好的措辞! (虽然来不及编辑)
-
是的,它是一个普通的指针,正是 C++ 使用的风格。如果不是这种情况,C# 无法接近 C++ 性能。唯一额外的细节是垃圾收集器可以找到它。在 C++ 中,程序员必须找到它并显式调用删除运算符。或者请其他班级的帮助来完成这项工作,这就是 perf 开始受到影响的地方。