2011-01-13 112 views
30

什么是ref class以及什么时候声明一个类是“ref class”的任何好站点或解释?托管C++ ref类

MSDN上的解释是不够的我,

base_type(可选)

基本类型。 ref类或ref结构可以从零个或多个托管接口和零个或一个ref类型继承。值类或值结构只能从零个或多个托管接口继承。

REF

ref关键字告诉类或结构将在堆和参考被分配给将被传递给函数或存储在类成员的编译器。关键字value告诉编译器,类或结构中的所有数据都被传递给函数或存储在成员中。

回答

47

基本上,ref class是一个CLR类。这相当于C#中的class

这创建了由CLR管理的引用类型。如果你想创建一个可用于C#的类,你通常会创建一个ref class。 (ref struct,顺便说一句,不完全是一回事,但与C++的标准类与结构预设无障碍规则。)

此外,仅供参考 - 为了使一个值类型(struct在C#),你'使用value classvalue struct

对这些新关键字的很好解释是Herb Sutter's post on C++/CLI Keywords。如果您不熟悉C++/CLI,但具有可靠的C++背景,这是一个有用的参考。

+0

很好地解释了基本概念。谢谢!这正是我一直在寻找的:) – 2017-07-07 06:58:33