ref class
とは何か、またクラスを「参照クラス」として宣言するタイミングについての良いサイトや説明はありますか?
Msdnの説明では十分ではありませんでした。
base_type(オプション)
基本タイプ。 refクラスまたはref構造体は、0個以上のマネージインターフェイスと0個または1個のrefタイプから継承できます。値クラスまたは値構造体は、0個以上の管理対象インターフェースからのみ継承できます。
参照
ref
キーワードは、クラスまたは構造がヒープに割り当てられ、それへの参照が関数に渡されるか、クラスメンバーに格納されることをコンパイラーに指示します。value
キーワードは、クラスまたは構造内のすべてのデータが関数に渡されるか、メンバーに格納されることをコンパイラーに指示します。
基本的に、ref class
はCLRクラスです。 C#のclass
に相当します。
これにより、CLRによって管理される参照型が作成されます。 C#から使用できるクラスを作成する場合は、通常、ref class
を作成します。 (ところで、ref struct
はまったく同じことを行いますが、C++の標準クラスとstructのデフォルトのアクセシビリティルールを使用します。)
また、参考までに-値の型(C#ではstruct
)を作成するには、value class
またはvalue struct
を使用します。
これらの新しいキーワードの多くの良い説明は C++/CLIキーワードに関するハーブサッターの投稿 です。これは、C++/CLIを使い始めたばかりで、C++の背景がしっかりしている場合に役立ちます。