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

Apr 24, 2017 am 11:30 AM

コンセプト:

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C# を使用した Active Directory C# を使用した Active Directory Sep 03, 2024 pm 03:33 PM

C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# のアクセス修飾子 C# のアクセス修飾子 Sep 03, 2024 pm 03:24 PM

C# のアクセス修飾子のガイド。 C# のアクセス修飾子の種類について、例と出力とともに説明しました。

C# の乱数ジェネレーター C# の乱数ジェネレーター Sep 03, 2024 pm 03:34 PM

C# の乱数ジェネレーターのガイド。ここでは、乱数ジェネレーターの仕組み、擬似乱数の概念、安全な数値について説明します。

C# データ グリッド ビュー C# データ グリッド ビュー Sep 03, 2024 pm 03:32 PM

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

C# 文字列リーダー C# 文字列リーダー Sep 03, 2024 pm 03:23 PM

C# StringReader のガイド。ここでは、C# StringReader の概要とその動作について、さまざまな例やコードとともに説明します。

C# のパターン C# のパターン Sep 03, 2024 pm 03:33 PM

C# のパターンのガイド。ここでは、C# のパターンの概要と上位 3 種類について、その例とコード実装とともに説明します。

C# シリアル化 C# シリアル化 Sep 03, 2024 pm 03:30 PM

C# シリアル化のガイド。ここでは、C# シリアル化オブジェクトの導入、手順、作業、例についてそれぞれ説明します。

C# 文字列ライター C# 文字列ライター Sep 03, 2024 pm 03:23 PM

C# StringWriter のガイド。ここでは、C# StringWriter クラスの概要とその動作について、さまざまな例やコードとともに説明します。

See all articles