C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のボクシングとは何ですか?


ボクシングは値型をオブジェクト型に変換します。ボクシングの例を見てみましょう-

int x = 50;
object ob = x; // boxing

ボックス化では、スタックに格納された値がヒープメモリに格納されたオブジェクトにコピーされますが、ボックス化解除はその逆です。

ボクシングは、ガベージコレクションされたヒープに値型を格納するのに役立ちます。これは、値型から型オブジェクトへの暗黙の変換です。

例を見てみましょう-

using System;
using System.Collections.Generic;
using System.Linq;

public class Demo {

   static void Main() {
      int x = 50;
      object ob = x;

      x = 100;

      // The change in x won't affect the value of ob
      System.Console.WriteLine("Value Type = {0}", x);
      System.Console.WriteLine("Oject Type = {0}",ob);
   }
}

ただし、Unboxingでは、ヒープメモリに格納されているオブジェクトの値がスタックに格納されている値の型にコピーされます。明示的な変換がありますが、ボクシングには暗黙的な変換があります。


  1. C / C ++での型キャストとは何ですか?

    型キャストは、変数をあるデータ型から別のデータ型に変換する方法です。たとえば、「long」値を単純な整数に格納する場合は、「cast」「long」を「int」と入力できます。 キャスト演算子を使用して、値をあるタイプから別のタイプに明示的に変換できます。 次のように- (type_name) expression キャスト演算子によって、ある整数変数を別の整数変数で除算することが浮動小数点演算として実行される次の例を考えてみます- 例 #include <stdio.h> main() {    int sum = 17, count = 5;  

  2. C#のデータ型、値型、参照型は何ですか?

    C#のデータ型には、値型、参照型、ポインタ型の2種類があります。 値型 値型変数には、値を直接割り当てることができます。これらは、System.ValueTypeクラスから派生しています。 値型のデータ型は次のとおりです- タイプ 表す 範囲 デフォルト値 ブール ブール値 正誤問題 バイト 8ビット符号なし整数 0〜255 0 char 16ビットUnicode文字 U+0000からU+fff \ 0 10進数 有効数字28〜29桁の128ビットの正確な10進値 (-7.9 x 1028〜7.9 x 1028)/ 100〜28 0.0M