値の型と参照型を検出する
- 8 分
C# で使用できるデータ型が多数ある場合、使用する適切なデータ型を選択することは、データ型を別のデータ型よりも選択するタイミングを理解する必要があることを意味します。
1 つのデータ型を別のデータ型よりも選択する 理由 について説明する前に、データ型の詳細を理解する必要があります。 また、C# と .NET でデータ型とデータ型がどのように機能するかも知る必要があります。
データとは
"データとは何か" という質問に答えるのは、質問するユーザーと、どのようなコンテキストで質問しているかによって異なります。
ソフトウェア開発では、データは基本的に一連のビットとしてコンピューターのメモリに格納される値です。 ビットは、0または1、または "off" と "on" として表される単純なバイナリ スイッチです。1 ビットは役に立たないようですが、8 ビットを 1 つのシーケンスにまとめると、バイトが形成されます。 バイトで使用すると、各ビットはシーケンス内の意味を受け取ります。 実際、バイナリ (base-2) 数字システムを使用する場合は、256 種類の組み合わせを 8 ビットで表すことができます。
たとえば、二項数値システムでは、195として11000011数を表すことができます。 次の表は、このしくみを視覚化するのに役立ちます。 最初の行には、バイト内の位置に対応する 8 つの列があります。 各位置は、異なる数値を表します。 2 番目の行には、 0 または 1のいずれかの個々のビットの値を格納できます。
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
2 行目の 1 に対応する最初の行の各列の数値を加算すると、2 進数のシステム表現に相当する 10 進数が得られます。 この場合は、 128 + 64 + 2 + 1 = 195。
255以外の大きな値を使用するには、コンピューターにより多くのバイト (通常は 32 ビットまたは 64 ビット) が格納されます。 科学的な設定で何百万もの大量のデータを扱っている場合は、使用しているデータ型をより慎重に検討する必要があります。 コードの実行に必要なメモリが増える可能性があります。
テキスト データはどうですか?
コンピューターが 0と 1のみを認識している場合、どのようにテキストを操作できますか? ASCII (American Standard Code for Information Interchange) などのシステムを使用すると、1 バイトを使用して、大文字と小文字、数字、タブ、バックスペース、改行、および多くの数学記号を表すことができます。
たとえば、小文字の a をアプリケーションの値として格納する場合、コンピューターはその値のバイナリ形式のみを認識します。 コンピューターで小文字の文字 a がどのように処理されるかを理解するには、ASCII 値とその 10 進数に相当する ASCII テーブルを見つける必要があります。 "ASCII lookup decimal" という用語を検索して、このようなリソースをオンラインで検索できます。
この場合、小文字の a は、10 進値の 97と同じです。 次に、同じ二進数字システムを逆に使用して、ASCII 文字 a がコンピューターによってどのように格納されるかを見つけます。
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
64 + 32 + 1 = 97以降、aの 8 ビット バイナリ ASCII コードは01100001。
このような変換を自分で実行する必要はないでしょうが、特にデータ型を検討する際に、コンピューターのデータの観点を理解することが基本的な概念です。
データ型とは
データ型は、プログラミング言語が値に対して保存するメモリの量を定義する方法です。 C# 言語には、さまざまなアプリケーションやデータ サイズに使用される多くのデータ型があります。
キャリアで構築するほとんどのアプリケーションでは、利用可能なデータ型のうち、限られた小さなサブセットを選択します。 しかし、他の人が存在し、その理由を知る必要があります。
値型と参照型
このモジュールでは、C# の 2 種類の型 (参照型と値型) に焦点を当てています。
参照型の変数は、データ (オブジェクト) への参照を格納します。つまり、他の場所に格納されているデータ値を指します。 これに対し、値型の変数にはデータが直接含まれます。 C#を学ぶと、値型と参照型の基本的な違いに関する新たな情報が明らかになります。
単純な値型
単純値型は、C# によってキーワードとして提供される定義済みの型のセットです。 これらのキーワードは、.NET クラス ライブラリで定義されている定義済みの型のエイリアス (ニックネーム) です。 たとえば、C# キーワード int は、 System.Int32として .NET クラス ライブラリで定義されている値型のエイリアスです。
単純な値型には、 char や boolなど、既に使用したデータ型の多くが含まれます。 整数型と浮動小数点値型も多数あり、整数と小数部の幅広い範囲を表します。
まとめ
- 値はビットとして格納され、オン/オフスイッチは単純です。 これらのスイッチを十分に組み合わせることで、可能な限り任意の値を格納できます。
- データ型には、値型と参照型の 2 つの基本的なカテゴリがあります。 違いは、プログラムの実行時にコンピューターによって値が格納される方法と場所です。
- 単純な値型では、キーワード エイリアスを使用して、.NET ライブラリ内の型の正式な名前を表します。
自分の知識をチェックする
フィードバック
このページはお役に立ちましたか?
いいえ
このトピックについてサポートが必要ですか?
このトピックの意図を把握したり、理解を深めたりするために Ask Learn を使ってみませんか?