3

C# では、型は値型と参照型であると言われています

ここに画像の説明を入力

最上位のクラスならSystem.Object、すべてがオブジェクトということですか?

もしそれが本当なら...これらの質問は彼らと一緒に来ます

1.オブジェクトに値を直接割り当てることができないため、すべての型は参照型でなければなりません.....

2.

    int a=20; //this is primitive type or object ???
    int a = new int(); //according to documentation this is reference type ... 

これら 2 つのステートメントの違い ... 最初のステートメントでは、newキーワードが自動的に呼び出されますか?

この図が私をとても混乱させていることを説明してください... msdnからは理解できませんでした。

4

1 に答える 1

1

値型には、純粋な値型とボックス化された値型の 2 つの「フレーバー」があります。ボックス化された値の型は、不変の参照オブジェクトです。これら 2 つの "物理的" な性質が異なっていても、論理的な C# 型は同じです。つまり、ボックス化されたintタイプはintです。これは、関連しているが異なる型に対する論理値整数型と論理参照整数型が存在する Java とは異なります。

これを機能させるために、C# には自動ボックス化メカニズムがあります。

object  o = 5; // Automatically boxes the integer number 5;

ボックス化解除は明示的に指定する必要があります。

int i = (int)o;
于 2013-06-09T16:55:23.747 に答える