C# の値の型と参照型の概要

Y2J
Y2Jオリジナル
2017-04-24 11:30:541351ブラウズ

コンセプト:

1. 値型: データはメモリのスタックに保存され、スタックからデータに素早くアクセスできます。したがって、値型は実際のデータを表します。

2. 参照型: メモリ ヒープに格納されているデータ (クラス、インターフェイス、配列、文​​字列を含む) へのポインターまたは参照を表します。

C# で定義される値の型には、プリミティブ型 (Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Float、Double、Bool、Decimal)、列挙型 (enum)、および構造体 (struct) が含まれます

参照型には、クラス、配列、インターフェイス、デリゲート、文字列などが含まれます。

の違い:

基本的な違いは、メモリに格納される方法です。値型は値をメモリにのみ保存し、これらの値型はスタックに保存されます。プリミティブ データ型 (bool や int など) がこの型に属します。参照型メモリユニットは、オブジェクトのアドレスをメモリヒープに格納するだけであり、オブジェクト自体はメモリヒープに配置されます。参照される値の型の値が null の場合、オブジェクトが参照されていないことを意味します。

ヒープとスタックの違い:

ヒープとスタックは2つの異なる概念であり、メモリ内の記憶場所も異なります。

ヒープは通常、文字列型などの可変長データを格納するために使用されます。整数型データなどの固定長データを格納するために使用されます (各 int 変数は 4 バイトを占有します)。データストレージの場所から、値変数が別の値変数に代入されると、2 つの同一の値がスタックに保存され、参照変数が別の参照変数に代入されると、2 つの同一の値が保存されることがわかります。同じヒープの場所への 2 つの参照がスタックに保存されます。つまり、同じヒープのアドレスがスタックに保存されます。データ操作を実行する場合、値型の場合、各変数は独自の値を持つため、1 つの変数に対する操作は他の変数に影響しません。参照型の変数の場合、変数のデータに対する操作は、その変数のデータに対する操作になります。ヒープでは、2 つの参照型変数が同じオブジェクトを参照している場合、実際の意味は、それらがスタックに保存するヒープ アドレスが同じであるため、一方の変数に対する操作は、同じ変数を参照するもう一方の変数に影響を与えます。

コンセプト:

1. 値型: データはメモリのスタックに保存され、スタックからデータに素早くアクセスできます。したがって、値型は実際のデータを表します。

2. 参照型: メモリ ヒープに格納されているデータ (クラス、インターフェイス、配列、文​​字列を含む) へのポインターまたは参照を表します。

C# で定義される値の型には、プリミティブ型 (Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Float、Double、Bool、Decimal)、列挙型 (enum)、構造体 (struct) が含まれます

参照型には、クラス、配列、インターフェイス、デリゲート、文字列などが含まれます。

の違い:

基本的な違いは、メモリに格納される方法です。値型は値をメモリにのみ保存し、これらの値型はスタックに保存されます。プリミティブ データ型 (bool や int など) がこの型に属します。参照型メモリユニットは、オブジェクトのアドレスをメモリヒープに格納するだけであり、オブジェクト自体はメモリヒープに配置されます。参照される値の型の値が null の場合、オブジェクトが参照されていないことを意味します。

ヒープとスタックの違い:

ヒープとスタックは2つの異なる概念であり、メモリ内の記憶場所も異なります。

ヒープは通常、文字列型などの可変長データを格納するために使用されます。整数型データなどの固定長データを格納するために使用されます (各 int 変数は 4 バイトを占有します)。データストレージの場所から、値変数が別の値変数に代入されると、2 つの同一の値がスタックに保存され、参照変数が別の参照変数に代入されると、2 つの同一の値が保存されることがわかります。同じヒープの場所への 2 つの参照がスタックに保存されます。つまり、同じヒープのアドレスがスタックに保存されます。データ操作を実行する場合、値型の場合、各変数は独自の値を持つため、1 つの変数に対する操作は他の変数に影響しません。参照型の変数の場合、変数のデータに対する操作は、その変数のデータに対する操作になります。ヒープでは、2 つの参照型変数が同じオブジェクトを参照している場合、実際の意味は、それらがスタックに保存するヒープ アドレスが同じであるため、一方の変数に対する操作は、同じ変数を参照するもう一方の変数に影響を与えます。

以上がC# の値の型と参照型の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。