プログラムの基本構成
VisualStudioで新規プロジェクトを作成すると下のようなソースコードが表示されます。
これは実行するとコンソール画面に「Hello World!」と表示するプログラムです。
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Visual Studio 2022の場合
Visual Studio 2022でプログラミングを始めた場合、このように1行だけのソースコードが表示されます。
Console.WriteLine("Hello World!");
Visual Studio 2022ではコードが簡単に書けるように下記の赤枠部分(Mainメソッドの中身)以外を省略できるようになっています。
エントリーポイント(Mainメソッド)
//Mainメソッド部分を抜粋
static void Main(string[] args)
{
//ここにコードを書いていく
//ここに書かれたコードをすべて実行したらプログラムが終了する
//ブロック内はインデント(タブで段落を下げる)すると見やすいので皆やっている
}
MainメソッドはC#のプログラムが実行されると最初に呼び出される特別なところです。
Mainメソッドは1つのプログラム内で複数書くことはできません。
波かっこ { } で囲まれた部分をブロックと言います。このブロック全体でMainメソッドです。
C#でプログラミングをするときはMainメソッドのブロック内に実行したいコードを書いていくことになります。Mainメソッド内の処理が最後まで実行されるとプログラムが終了します。
ウィンドウが表示されるプログラムもMainメソッドから始まります。
というかMainメソッド内でウィンドウを表示する命令をしています。
Mainメソッドについてはこちらの記事にまとめました。
クラス(class)
class Program
{
//クラスの中にメソッドや変数などを書く
//ブロック内はインデント(タブで段落を下げる)すると見やすいので皆やっている
}
class Programとブロック { から } までがクラスです。
classの後ろはクラス名で、上のコードはProgramという名前のクラスということになります。
クラスはデータを一時保存しておくための変数や処理を行うメソッドをひとまとめにしたものです。
C#ではこのクラスを組み合わせてプログラムを書いていきます。
クラスについてはこちらの記事にまとめました。
メソッド
一連の処理(命令)をひとまとめにしたものです。
C#ではプログラムで行う処理をメソッドの中に記述していきます。
メソッドは呼び出すだけで処理を実行してくれるものや、呼び出す際にパラメータを渡す必要があるもの、結果を返すものがあります。
Console.WriteLineはコンソール画面に指定された文字を出力するというメソッドです。
C#にはあらかじめ色々なメソッドを持ったクラスが用意されていて、基本的なこと(テキストファイルの読込、書き込み など)はそれらを使って行うことができます。
メソッドについてはこちらの記事にまとめました。
名前空間(namespace)
namespace ConsoleApp1
{
//この中にあるクラスはその名前空間のグループになる
//何個もクラスを書ける
class Program { }
class Kurasu { }
//ブロック内はインデント(タブで段落を下げる)すると見やすいのry
}
名前空間のブロック内にあるクラスはその名前でグループ分けされます。
名前空間ブロックのなかには複数のクラスを定義することができます。
ProgramクラスはConsoleApp1名前空間に属していることになります。
C#があらかじめ用意しているクラスもいろいろな名前空間にグループ化されています。
名前空間 | |
---|---|
System | C#でコード書く時に必要なクラスがまとまっている |
System.IO | ファイルの読み書き関係のクラスがまとまっている |
System.Collection.Generic | 同じ種類データ(数値、文字など)をひとまとめに扱うためのクラスがまとめている |
Console.WriteLineはのConsoleクラスは名前空間Systemに属しています。
「名前空間SystemのConsoleクラスのWriteLineメソッド」です。
using
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");
}
}
}
usingについてはこちらの記事にまとめました。
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));
最初のうちは、ここにはセミコロンつけるの?つけないの?となると思いますが、VisalStudioのエディタが教えてくれるのでそこまで気にする必要はありません。
セミコロンが必要なところはこんな感じで赤波線で教えてくれます。
大文字、小文字が区別される
下のコードではnumberとNumberは別のデータとして扱われます。
int number = 0;
int Number = 0;
コメント
プログラムコード内に説明やメモを書くことができます。
1行のコメント「//」が書かれた行はコメントになります。
複数行コメントを書きたい場合は「/*」と「*/」の間に書きます。
また、コードが書いてある行の先頭に「//」を追加してコードを残してコメントにしておくというのをよく使います(コメントアウトといいます)。
// 1行だけコメントにするには「//」
/* こっちは、
* 複数行のコメント
* です。
*/
//↓なんかエラーになるからとりあえずコメントアウトって感じに使う
//int number = "abc";
VisualStudioではコメントは文字の色が緑色になるので、これを見たらプログラムには関係ない部分なんだなと思ってください。
プログラムに関係ないのにコメントって書く必要あるの?となるかもしれませんが、他の人がコメントを見てここはこんなことをしてるんだとわかりやすいコードになります。
C# 記事まとめページに戻る(他のサンプルコードもこちら)
コメント