1. ホーム
  2. c#

[解決済み] c#の参照型と値型の違いは何ですか?

2022-11-22 07:53:19

質問

数ヶ月前、ある人からこんな質問をされたのですが、詳しく説明できませんでした。C#の参照型と値型の違いは何ですか?

私は、値型が int , bool , float などがあり、参照型は delegate , interface など。それともこれも間違っているのでしょうか?

専門的に説明してもらえますか?

どのように解決するのですか?

あなたの例は少し奇妙です。 int , boolfloat は特定の型、インターフェース、デリゲートは 種類 のようなもので、ちょうど structenum は値の種類の一種です。

と書いたのは an 参照型と値型についての説明 この記事で . 分かりにくい部分があれば、ぜひ教えてください。

TL;DR"バージョンは、特定の型の変数/式の値が何であるかを考えることです。値型の場合、値は情報そのものです。参照型の場合、値は参照で、null かもしれないし、情報を含むオブジェクトにナビゲートする方法かもしれません。

例えば、変数を一枚の紙のようなものだと考えてください。それは値 "5" または "false" を書き込むことができますが、私の家を持つことはできません...それは 指示 が必要です。その道順が参照に相当する。特に、二人の人間が私の家への同じ指示を書いた異なる紙を持つことができ、一人がその指示に従って私の家を赤く塗った場合、二人目の人間もその変化を見ることができます。もし、二人が別々の の絵が描かれているだけなら、1 人が自分の紙に色をつけても、もう 1 人の紙にはまったく変化がありません。