プログラムの基本構成
VisualStudioで新規プロジェクトを作成すると下のようなソースコードが表示されます。
これは実行するとコンソール画面に「Hello World!」と表示するプログラムです。
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
エントリーポイント(Mainメソッド)
C#のプログラムが実行されるとMainメソッドが呼び出されます。(6行目)
Mainメソッドは1つのプログラム内で複数書くことはできません。
波かっこ { } で囲まれた部分をブロックと言います。
複数の処理(命令)をまとめることができます。
Mainメソッドが最後まで実行されるとプログラムが終了します。
上のコードの場合、 Mainメソッドのブロック(7~9行目の { から } )内の処理が終わるとプログラムが終了します。
C#でプログラミングをするときはMainメソッド内(7~9行目)に実行したいコードを書いていくことになります。
ウィンドウが表示されるプログラムもMainメソッドから始まります。
というかMainメソッド内でウィンドウを表示する命令をしています。
クラス(class)
4行目~10行目がクラスです。
class Programと同じ階層のブロック { から } までがクラスになります。
クラスはデータを一時保存しておくための変数と処理を行うメソッドをひとまとめにしたものです。
C#ではそのクラスを組み合わせてプログラムを書いていきます。
変数だけ、メソッドだけというクラスもあります。
サンプルコードのProgramクラスは変数は持っておらず、Mainメソッドを持っています。
メソッド
一連の処理(命令)をひとまとめにしたものです。
C#ではプログラムで行う処理をメソッドの中に記述していきます。
Mainメソッドの他に8行目のConsole.WriteLineがメソッドです。
Console.WriteLineはコンソール画面に指定された文字を出力するというメソッドです。
このようにメソッドは指定されたパラメータを元に処理を行い、結果を返します。
C#にはあらかじめ色々なメソッドが用意されていて、基本的なこと(テキストファイルの読込、書き込み など)はそれらを使って行うことができます。
名前空間(namespace)
名前空間のブロック内にあるクラスはその名前でグループ分けされます。
名前空間ブロックのなかには複数のクラスを定義することができます。
ProgramクラスはConsoleApp1名前空間に属していることになります。
メソッドのところにでてきたConsole.WriteLineはのConsoleは名前空間Systemに属しています。
「名前空間SystemのConsoleクラスのWriteLineメソッド」です。
usingキーワードを使うとその名前空間を使用することを宣言できます。
1行目の「using System;」で、名前空間Systemを使うことを宣言しています。
宣言を行うとC#が名前空間Systemを使うのをわかっているため、名前空間名を省略できます。
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//usingで宣言していないときは「名前空間.クラス名.メソッド名」
System.Console.WriteLine("Test");
//usingで宣言すると「クラス名.メソッド名」で呼び出せる
Console.WriteLine("Test");
}
}
}
C#の文法
行(命令)の終わりにはセミコロンをつける
行の最後に ; (セミコロン)をつけます。
正確には命令ごとにセミコロンをつけます、これはC#がセミコロンまでが1つの命令と判断するためです。
System.Console.WriteLine("あ");
//セミコロンがあるのでこれでも認識するが読みにくいので改行したほうがいいです
System.Console.WriteLine("い");System.Console.WriteLine("う");
セミコロンまでが1つの命令なので長いコードは改行して見やすくできます。
Dictionary<int, (int, int)> dic3 =
list.Where(d => d.Data1 >= 20).ToDictionary(d => d.Data1, d => (d.Data2, d.Data3));
大文字、小文字が区別される
下のコードではnumberとNumberは別のデータとして扱われます。
int number = 0;
int Number = 0;
コメント
プログラムコード内に説明やメモを書くことができます。
1行のコメント「//」が書かれた行はコメントになります。
複数行コメントを書きたい場合は「/*」と「*/」の間に書きます。
また、コードが書いてある行の先頭に「//」を追加してコードを残してコメントにしておくというのをよく使います(コメントアウトといいます)。
// 1行だけコメントにするには「//」
/* こっちは、
* 複数行のコメント
* です。
*/
コメント