2017-12-01 5 views
1

値の型は直接値(int、boolなど)を保持し、参照型(クラスなど)は値が格納されている場所への参照を保持します。私はまだ、この特定の質問に対する回答を、参照や値の型に関する他の記事で見つけていません。別のint変数を含むint変数を参照型とみなしますか?

int x = 10; 
int y = x; 

// Would y be considered a reference type? 

私は、これは「intはX」、「Y」値型であるため、直接値を保持していない尋ね、その「参照」から「X」(メモリ内の別の場所)。

+2

'y' *は値を保持しています - これを間接的に割り当てただけです。整数型には整数値しか含めることができない*別のint型変数* – Plutonix

答えて

1

yは参照型と見なされますか?値型対

参照タイプは、タイプ自体なく、その型の変数の任意の特性です。タイプintは値タイプです。したがって、タイプintのすべての変数は、値タイプの変数です。あなたの特定のシナリオで

yxの値が割り当てられたら、それはその値ではなく、それへの参照のコピーを取得します。 xyの値は、互いに独立して割り当てることができます。あなたは、その後xを変更する場合は、yの値が変更されないままになります。彼らは参照するオブジェクトとは対照的に、参照型の変数「トラック」の変更で

int x = 10; 
int y = x; 
x = 5; 
Console.WriteLine(y); // Prints 10 

StringBuilder x = new StringBuilder("Hello"); 
StringBuilder y = x; 
x.Append(", world"); 
Console.WriteLine(y); // Prints "Hello, world" 
1

私が尋ねますこれは "int x"が値型である一方、 "y"は直接値を保持しないため、 "x"(メモリ内の別の場所)を参照します。

yxを参照していません。 の値がの場合、代入(=演算子経由)は、の右側の変数から左側の変数へコピーすることを意味します。 参照タイプの

、それは参照をコピーすることを意味します。

関連する問題