PR

[C# 入門] プログラムの基本構成と文法について

スポンサーリンク

プログラムの基本構成

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メソッドについてはこちらの記事にまとめました。

[C#] Mainメソッド(エントリーポイント)について
Mainメソッドはエントリーポイントと呼ばれ、プログラムが実行されると最初に呼び出されるメソッドで、Mainメソッド内の処理が終わるとそのプログラムが終了します。
スポンサーリンク

クラス(class)

class Program
{
    //クラスの中にメソッドや変数などを書く
    //ブロック内はインデント(タブで段落を下げる)すると見やすいので皆やっている
}

class Programとブロック { から } までがクラスです。
classの後ろはクラス名で、上のコードはProgramという名前のクラスということになります。

クラスはデータを一時保存しておくための変数処理を行うメソッドをひとまとめにしたものです。
C#ではこのクラスを組み合わせてプログラムを書いていきます。

クラスについてはこちらの記事にまとめました。

[C# 入門] クラス(class)について
クラス(class)とは クラスは値や変数、メソッドなどをひとまとまりにしたものです。とりあえずこれだけ覚えておきましょう。 もう少しちゃんと書くと、クラスはユーザー定義型と言って、開発者が変数やメソッドを自由に組み合わせて1つの新しいデー...
スポンサーリンク

メソッド

一連の処理(命令)をひとまとめにしたものです。
C#ではプログラムで行う処理をメソッドの中に記述していきます

メソッドは呼び出すだけで処理を実行してくれるものや、呼び出す際にパラメータを渡す必要があるもの、結果を返すものがあります。
Console.WriteLineはコンソール画面に指定された文字を出力するというメソッドです。

C#にはあらかじめ色々なメソッドを持ったクラスが用意されていて、基本的なこと(テキストファイルの読込、書き込み など)はそれらを使って行うことができます。

メソッドについてはこちらの記事にまとめました。

[C# プログラミング入門] メソッドの使い方
C#のメソッドについての入門記事です。定義の方法や、引数・戻り値について、呼び出し方についての説明をまとめてあります。メソッドの呼び出し方は静的(static)なものとそうでないもので変わってきます。
スポンサーリンク

名前空間(namespace)

namespace ConsoleApp1
{
    //この中にあるクラスはその名前空間のグループになる
    //何個もクラスを書ける
    class Program { }
    class Kurasu { }
    //ブロック内はインデント(タブで段落を下げる)すると見やすいのry
}

名前空間のブロック内にあるクラスはその名前でグループ分けされます。
名前空間ブロックのなかには複数のクラスを定義することができます。

ProgramクラスはConsoleApp1名前空間に属していることになります。
C#があらかじめ用意しているクラスもいろいろな名前空間にグループ化されています。

名前空間
SystemC#でコード書く時に必要なクラスがまとまっている
System.IOファイルの読み書き関係のクラスがまとまっている
System.Collection.Generic同じ種類データ(数値、文字など)をひとまとめに扱うためのクラスがまとめている

Console.WriteLineはのConsoleクラスは名前空間Systemに属しています。
名前空間SystemConsoleクラス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# 入門] usingの使い方(名前空間の使用)
usingキーワードには2つの使い方があります。 using ディレクティブ(名前空間の使用)using ステートメント(IDisposableオブジェクトの破棄) この記事では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のエディタが教えてくれるのでそこまで気にする必要はありません。
セミコロンが必要なところはこんな感じで赤波線で教えてくれます。

大文字、小文字が区別される

下のコードではnumberNumberは別のデータとして扱われます。

int number = 0;
int Number = 0;

コメント

プログラムコード内に説明やメモを書くことができます。
1行のコメント「//」が書かれた行はコメントになります。
複数行コメントを書きたい場合は「/*」と「*/」の間に書きます。

また、コードが書いてある行の先頭に「//」を追加してコードを残してコメントにしておくというのをよく使います(コメントアウトといいます)。

// 1行だけコメントにするには「//」

/*  こっちは、
 *  複数行のコメント
 *  です。
 */

//↓なんかエラーになるからとりあえずコメントアウトって感じに使う
//int number = "abc";

VisualStudioではコメントは文字の色が緑色になるので、これを見たらプログラムには関係ない部分なんだなと思ってください。
プログラムに関係ないのにコメントって書く必要あるの?となるかもしれませんが、他の人がコメントを見てここはこんなことをしてるんだとわかりやすいコードになります。


C# 記事まとめページに戻る(他のサンプルコードもこちら)

C# プログラミング講座
C#についての記事まとめページです。開発環境VisualStudioのインストール方法や使い方、プログラミングの基礎知識についてや用語説明の記事一覧になっています。講座の記事にはすぐに実行できるようにサンプルコードを載せています。

コメント