#2 型
今回は型について説明します.
型には値型と参照型があり,それぞれ違った特性を持っています.
##値型
値型はデータを直接保持するものです.変数自身がデータであると考えておいてください.
###整数型
その名の通り整数を扱う型です.
型名 | 扱えるデータ |
---|---|
byte | 0~255の整数 |
sbyte | -128~127の整数 |
short | -32768~32767の整数 |
ushort | 0~65535の整数 |
int | -2147483648~2147483647の整数 |
uint | 0~4294967295の整数 |
long | -9223372036854775808~9223372036854775807の整数 |
ulong | 0~18446744073709551615の整数 |
整数リテラルを入力すると,自動でint型,uint型,long型,ulong型のうち,その値を格納できる最も範囲の狭い型(大抵の場合はint型)として処理されます.なので,uint型,long型,ulong型であることを特別強調したい時はサフィックスを付けます. |
型 | サフィックス |
---|---|
uint | u / U |
long | l / L |
ulong | u / U または l / L または ul / UL または lu / LU |
214 // int型
214u // uが付いているのでuint型
2147483648 // int型の範囲を超えているのでuint型
2147483648L // Lが付いているのでlong型
9223372036854775807u // uが付いていて,uint型の範囲を超えているのでulong型
###浮動小数型
コンピュータで実数を扱う際,浮動小数(詳しくは知りませんが小数点を動かしてごにょごにょするみたいです)という考え方で近似的に表すのでfloat型と呼ぶようです.double型は倍精度浮動小数とも言われ,大体倍の精度になるため,double型です.decimal型は,float型,double型よりも扱える値の範囲が狭い代わりに精度が高く,2進小数で正確に表すことができない0.1などを正確に表すことができます.
型名 | 扱えるデータ |
---|---|
float | ±1.5e-45~±3.4e38の浮動小数 |
double | ±5.0e-324~±1.7e308の浮動小数 |
decimal | 1.0e-28~7.9e28の浮動小数 |
実数リテラルも入力すると自動的にdouble型として扱われるため,float型,decimal型を表す際はサフィックスをつけます.また,上記のような指数表記もできます. |
型 | サフィックス |
---|---|
float | f / F |
decimal | m / M |
3.1 // double型
2.4e51 // double型
3.1f // fが付いているのでfloat型
3.1m // mが付いているのでdecimal型
###真理値型
真か偽かのみを格納する型.
型名 | 扱えるデータ |
---|---|
bool | true / false |
###文字型
一文字だけ格納できる型です.
型名 | 扱えるデータ |
---|---|
char | 文字 |
##参照型
値型がデータを直接保持するのに対して,参照型はデータが保存されているアドレスを保持します.変数はデータが格納されている領域のアドレスであると考えておいてください.参照型の変数にはnull
という何もないことを意味する値を格納できます.
###文字列型
文字列を格納できる型です.char型を何個も連ねて文字を表します.
型名 | 扱えるデータ |
---|---|
string | 文字列 |
###object型
全ての型の元になっている型でなんでも格納できます.
型名 | 扱えるデータ |
---|---|
object | なんでも |
以下は使用例です. |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TypeSample
{
class Program
{
static void Main(string[] args)
{
byte num = 200;
sbyte num2 = 34;
short num3 = 612;
ushort num4 = 939;
int num5 = 1245;
uint num6 = 8346;
long num7 = 18249L;
ulong num8 = 127844918uL;
float f = 3.7f;
double d = 67.2;
decimal m = 0.1m;
bool b = true;
char c = 'A';
string str = "Hello.";
object obj = null;
}
}
}
ここで挙げた基本的な型以外にもたくさんの型があるので調べてみてください.
次回は演算子について説明します.
##練習問題
float型のPIを定義し3.14で初期化したものを画面に出力してください.
解答例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TypeSample
{
class Program
{
static void Main(string[] args)
{
const float PI = 3.14f;
}
}
}