Visual C# イロハのイ 02 Mainメソッド、データ型

̃Gg[͂ĂȃubN}[Nɒlj

C#シリーズ第2回。今回はデータ型がメインです。

C#プログラムの基本構成

以下から構成される。

┏usingディレクティブ
┗名前空間の宣言
 ┗クラスの宣言
  ┗メソッドの宣言

/*	usingディレクティブ	*/
using System;
using System.Collections.Generic;
using System.Text;

namespace SampleAppli					/*	名前空間の宣言	*/
{
	class Program						/*	クラスの宣言	*/
	{
		static void Main(string[] args)	/*	メソッドの宣言	*/
		{
			
		}
	}
}

Mainメソッド

・staticでないといけない。
・アクセス修飾子はpublicにはできない。
・引数はなしでもよい。
・戻り値の型はvoidかint。
・戻り値の値はWindowsでは環境変数ERRORLEVELに格納される。

batファイルからC#アプリケーションの戻り値を参照する

以下のようなbatファイルで戻り値を利用できる。

  c:\~~~SampleAppli.exe 引数1 引数2
  echo 戻り値 = %ERRORLEVEL%
  pause

C#アプリケーションから別アプリケーションの戻り値を参照する

Process proc = Process.Start("C:\~~\SampleAppli.exe", "引数1", "引数2");
proc.WaitForExit();
Console.WriteLine("戻り値 = {0}", proc.ExitCode);

値型

値型のデータはスタック領域に格納される。

型名 規定値 範囲
bool false 1 true, false
sbyte 0 8 -128~127
byte 0 8 0~255
char u0000 16 u0000~uffff
short 0 16 -32768~32767
ushort 0 16 0~65535
int 0 32 -2147483648~2147483647
uint 0U 32 0~4294967295
long 0L 64 -9223372036854775808~9223372036854775807
ulong 0UL 64 0~18446744073709551615
float 0.0F 32 +-1.5x10e-45~+-3.4x10e+38
double 0.0D 64 +-5.0x10e-324~+-1.7x10e+308
decimal 0.0M 128 +-1.0x10e-28~+-7.9x10e+28

参照型

参照型のデータは、値がヒープ領域に、アドレス情報がスタック領域に格納される。

型名 規定値 概要
string null Unicode文字の文字列を格納する
object null 任意の型の値を格納する

null許容型

型名に?をつけて宣言するとnullが割り当てられる。
null許容型の変数ならばHasValueとValue読み取り専用プロパティを使用できる。
なお、HasValueプロパティがfalseのときにValueプロパティにアクセスすると、
例外(InvalidOperationException)がスローされる。

int? val = 100;
if(val.HasValue)
{
	Console.WriteLine("値 = {0}", val.Value);
} else {
	Console.WriteLine("値はnullです。");
}

定数の宣言

constキーワードをつけて宣言する。

const bool Yes = true;

列挙型の宣言

enumの後に列挙型の名前、{}の中に列挙子を記述する。
列挙子の既定の型はint型となる。
列挙子はインテリセンスで表示される。

enum Direction{
	Right,	/*	0	*/
	Center,	/*	1	*/
	Left	/*	2	*/
};
enum Size{
	S = 1,	/*	1	*/
	M,		/*	2	*/
	L,		/*	3	*/
	LL,		/*	4	*/
	XL = 10	/*	10	*/
};

配列の宣言

new演算子で宣言するか(規定値で初期化される)、
=演算子と{}で初期化して宣言する。

/*	1次元配列														*/
int[] array = new int[5];		/*	規定値(intなら0)で初期化される	*/
string[] string = {"初期値1", "初期値2"};/*	初期化値の指定もできる	*/
Console.WriteLine("配列stringの要素数 = {0}", string.Length);
/*	2次元配列														*/
int[,] array2 = new int[2, 3];	/*	2行3列。規定値で初期化される	*/
int[,] array3 = {
					{ 1,  2,  3},
					{10, 20, 30}
				};				/*	2x3	*/
/*	3次元配列														*/
string[,,] string2 = new string[5, 2, 4];/*	5x2x4。規定値で初期化される	*/
int[,] array4 = {
					{ { 1,  2,  3},{10, 20, 30} },
					{ { 4,  5,  6},{40, 50, 60} }
				};				/*	2x2x3	*/

ジャグ配列

配列の要素が配列である配列。要素は次元やサイズが異なっていてもよい。
通常の配列と同様、new演算子で宣言するか(規定値で初期化される)、
=演算子と{}で初期化して宣言する。

/*	new演算子を使った初期化	*/
int[][] array = new int[3][];	/*	array[0]~array[2]を宣言。まだ初期化されてない	*/
array[0] = new int[2];			/*	array[0]をint型の配列(要素数2)で初期化	*/
array[1] = new int[8];			/*	array[1]をint型の配列(要素数8)で初期化	*/
array[2] = new int[10];			/*	array[2]をint型の配列(要素数10)で初期化	*/
/*	=演算子と{}を使った初期化	*/
int[][] array2 = {
					new int[] {1, 2},
					new int[] {10, 20, 30, 40},
					new int[] {100, 200, 300},
				};
/*	array[0][0]は1、array[0][1]は2となる。		*/
/*	array.Lengthは3、array[0].Lengthは2となる。	*/

次回は演算子、例外処理等について執筆します。


One thought on “Visual C# イロハのイ 02 Mainメソッド、データ型

  1. Pingback: C#のおべんきょう(2) « goro

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です