ITメモ
C#




【C#】「C#」の変数

【C#】
「C#」の変数











変数の宣言・初期化


「型推論」での宣言と使用方法


var 変数名=値;
var i = 5;
var s = "Hello";
var a = new[] { 0, 1, 2 };

var expr =
from c in customers
where c.City == "London"
select c;

var anon = new { Name = "Terry", Age = 34 };
var list = new List<int>();




「型指定」での宣言と使用方法


int myInt;
myInt = new int();

myInt = 0;
int myInt = new int();
int myInt = 0;



bool b = true;
byte myByte = 255;
char[] chars = new char[4];
decimal myMoney = 213.9m;
double x = 3D;
float x = 3.5F;
int i = 123;
long long1 = 4294967296;
sbyte sByte1 = 127;
short x = 32767;
uint myUint = 4294967290;
ulong uLong = 9223372036854775808;
ushort myShort = 65535;

public struct Book
{
public decimal price;
public string title;
public string author;
}


Point p = new Point();




型変換(キャスト)をしての代入


キャストは、変数に、異なる型の値を代入するときに、
変数の型を、値の型に変換して、値を代入する方法のことを言う。
整数型の変数に、文字列を代入するときなどに使用します。


サンプルコード


変数名=(変更後の型タイプ)値;
int a;
a = (byte)16;

int b;
b = (string)"Hello";




Back



型の種類


変数が保存される領域の名称

スタック(Stack) 値型変数が保存される変数領域。
ヒープ(Heap) クラスのインスタンスや、「new演算子」で生成する参照型のデータが保存されているメモリ領域。



型の種類解説
値型値を保存できる変数の型で、値が、変数に直接保存されている。
参照型参照型は、参照型の変数にオブジェクトへの参照が保存されている。
voidパラメータや戻り値を持たないメソッドを指定する。
var 型推論。
変数を宣言するときに使用される。
型の指定をしないで変数を宣言するときに使用される。
暗黙的に型が指定されることになり、適切な型が暗黙的に指定された変数となる。
暗黙的にローカル変数の型指定する宣言。
明示的な型の代わりに「var」を指定することにより、
暗黙的に適切な型を推論するようにコンパイラに指示する宣言になる。



参照型


「C#」がサポートしているのは、「参照型」と「値型」の2種類。
参照型の変数は、データ(オブジェクト)への参照を格納する。
値型の変数は、データを直接格納する。



参照型の一覧
参照型を宣言
classクラスの宣言
interfaceインターフェイスの宣言
delegate
 
組み込みの参照型
dynamic
object
string




値型


値型のカテゴリー
カテゴリータイプ
構造体数値型 ・整数型
・浮動小数点型
・decimal
構造体bool
構造体ユーザ定義のstruct型
列挙型

列挙型で許容される型は、byte、sbyte、short、ushort、int、uint、long、または ulong です。




C# 型.NET Framework 型
boolSystem.Boolean
byteSystem.Byte
sbyteSystem.SByte
charSystem.Char
decimalSystem.Decimal
doubleSystem.Double
floatSystem.Single
int System.Int32
uintSystem.UInt32
longSystem.Int64
ulongSystem.UInt64
objectSystem.Object
shortSystem.Int16
ushortSystem.UInt16
stringSystem.String




整数型の一覧


種類範囲サイズ
sbyte-128 ~ 127符号付き 8 ビット整数
byte0 ~ 255符号なし 8 ビット整数
charU+0000 ~ U+ffffUnicode 16 ビット文字
short-32,768 ~ 32,767符号付き 16 ビット整数
ushort0 ~ 65,535符号なし 16 ビット整数
int-2,147,483,648 ~ 2,147,483,647符号付き 32 ビット整数
uint0 ~ 4,294,967,295符号なし 32 ビット整数
long-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807符号付き 64 ビット整数
ulong0 ~ 18,446,744,073,709,551,615符号なし 64 ビット整数




浮動小数点型の有効桁数とおおよその範囲


種類おおよその範囲有効桁数
float±1.5e − 45 ~ ±3.4e387 桁
double±5.0e − 324 ~ ±1.7e30815 ~ 16 桁




既定値の一覧


値の種類既定値
boolfalse
byte0
char'\0'
decimal0.0M
double0.0D
enum式 (E)0 によって算出された値。E は、列挙の識別子です。
float0.0F
int0
long0L
sbyte0
short0
structすべての値型フィールドを既定値に設定し、すべての参照型フィールドを null に設定して算出された値。
uint0
ulong0
ushort0




値型の一覧


値の種類カテゴリ型のサフィックス
boolBoolean
byte整数値 (符号なし)
char整数値 (符号なし)
decimal10 進数値M または m
double浮動小数点数値D または d
enum列挙型
float浮動小数点数値F または f
int整数値 (符号付き)
long整数値 (符号付き)L または l
sbyte整数値 (符号付き)
short整数値 (符号付き)
structユーザー定義の構造体
uint整数値 (符号なし)U または u
ulong整数値 (符号なし)UL または ul
ushort整数値 (符号なし)




暗黙的な数値変換の一覧


変換前目的
sbyteshort、int、long、float、double、または decimal
byteshort、ushort、int、uint、long、ulong、float、double、または decimal
shortint、long、float、double、または decimal
ushortint、uint、long、ulong、float、double、または decimal
intlong、float、double、または decimal
uintlong、ulong、float、double、または decimal
longfloat、double、または decimal
charushort、int、 uint、 long、ulong、 float、 double、または decimal
floatdouble
ulongfloat、 double、または decimal




明示的な数値変換の一覧


変換前目的
sbytebyte、ushort、uint、ulong、または char
byteSbyte または char
shortsbyte、 byte、 ushort、 uint、 ulong、または char
ushortsbyte、 byte、 short、または char
intsbyte、 byte、 short、 ushort、 uint、 ulong、または `` char
uintsbyte、byte、 short、 ushort、 int、または char
longsbyte、 byte、 short、 ushort、 int、 uint、 ulong、または char
ulongsbyte、 byte、 short, ushort、 int、 uint、 long、または char
charsbyte、byte、または short
floatsbyte、 byte、 short、 ushort、 int、 uint、 long、 ulong、 char、または `` decimal
doublesbyte、 byte、 short、 ushort、 int、 uint、 long、 ulong、 char、 float、 または decimal
decimalsbyte、 byte、 short、 ushort、 int、 uint、 long、 ulong、 char、 float、または double




数値結果テーブルの書式設定


数値結果の書式を指定するには、
・String.Format メソッド
・Console.Write メソッド
・Console.WriteLine メソッド
を使用する。
数値結果を書式を指定するには、書式指定文字列を使用して、出力結果の書式を指定する。


書式指定子説明出力
A 精度=有効桁数指定子
書式付き出力の有効桁数または小数点以下の桁数を制御
精度指定子の値は 0 から 99 の範囲。
Console.Write("{0:A3}", 2.500);
Console.Write("{0:A5}", -2.50000);
$2.50
($2.50)
C または c通貨 Console.Write("{0:C}", 2.5);
Console.Write("{0:C}", -2.5);
$2.50
($2.50)
D または dDecimal (10 進数型)Console.Write("{0:D5}", 25);00025
E または e指数Console.Write("{0:E}", 250000);2.500000E+005
F または f固定小数点 Console.Write("{0:F2}", 25);
Console.Write("{0:F0}", 25);
25.00
25
G または g[全般]Console.Write("{0:G}", 2.5);2.5
N または n[数値]Console.Write("{0:N}", 2500000);2,500,000.00
X または x16 進数 Console.Write("{0:X}", 250);
Console.Write("{0:X}", 0xffff);
FA
FFFF



Back