プログラミングを試してみたい人向けのC#プログラミングチュートリアル

C#の基本ルール

POINT
  • コメントを記載の仕方を学ぶ
  • プログラムはクラスの集まり
  • C#ではMain()から始まる
  • 変数とは何かを学ぶ
  • 名前空間とusingディレクティブとは
目次

値を入力するプログラムの作成

今回は、入力された値によって処理が変わるプログラムを作成していきます。
まずは単純に入力された値を表示するプログラムです。
先にプログラムの実行結果サンプルを紹介します。

実行結果サンプル

実行すると「文字を入力してください。」が表示して入力待ちします。

実行結果サンプル①
文字を入力してください。

何か値を入力します。
下図のサンプルでは「abcde」を入力、その後Enterを入力します。

実行結果サンプル②
文字を入力してください。
abcde

下図のように入力した値をプログラムが表示します。
最後に何かキーを入力すると終了します。

実行結果サンプル③
文字を入力してください。
abcde
入力された値:abcde

このような動きをするプログラムを作成します。

プログラム作成

次のファイルを作成してください。
ファイルの保存方法から知りたい場合は「プログラムファイルの保存方法」を参照してください。

ファイル名:Program.cs
class Program
{
    static void Main()
    {
        // メッセージ表示
        System.Console.WriteLine("文字を入力してください。");
        // 入力した値を変数inputにセット
        string input = System.Console.ReadLine();
        // 変数を値を画面に表示
        System.Console.WriteLine("入力された値:"+input);
        // キー入力待ち
        System.Console.ReadKey();
    }
}

作ったプログラムファイルをコンパイルします。
次のファイルをProgram.csと同じフォルダに作成してください。

ファイル名:Compile.bat
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe Program.cs
pause

保存したCompile.batをダブルクリックしてください。
アプリケーションファイルProgram(Program.exe)が作成されたら成功です。
Program(Program.exe)を実行して、実行結果サンプルと同じ動きになるか確認してください。

プログラム解説

作ったプログラムを解説していきます。

コメント

プログラミング言語には必ずコメント記載のルールがあります。
わかりにくい処理の補足説明などをコメントとして残すことができます。

使用例
// スラッシュ二つでその行は以降がコメント扱いになります。
Console.ReadKey();  // キー入力待ち ※//より前は処理が実行されます
/*
  スラッシュ+アスタリスク と アスタリスク+スラッシュで囲うことで
  複数行に渡ってコメント扱いになります。
*/

C#では二通りの方法でコメントの記載ができます。
//:スラッシュ2つで該当行の//以降をコメント扱いにします。
/* */:スラッシュ+アスタリスク と アスタリスク+スラッシュで囲うとその間をコメント扱いにします。
コメントをうまく使うことで、後でプログラムを見直したときにわかりやすくすることができます。
上手に活用しましょう。

クラス

C#ではプログラムをすべてクラスとして作成しています。
クラスは、役割を持った部品を意味します。

使用例
class Program
{
    ・・・
}

今回は、プログラムのメインの処理を実行するProgramというクラスのみを作成しました。
クラス名の後の{}で囲っている部分にクラスに対する命令を記載します。
処理が複雑になっていくと、どんなクラスにどんな役割を持たせるかで、わかりやすさや使い回しのしやすさなどに影響してきます。

Main

C#はstatic void Main()で記載された処理からスタートします。

使用例
static void Main()
{
    ・・・
}

Main()の後の{}で囲っている部分に処理を記載します。
一つのプログラムでこのMainが複数あるとコンパイルするときにエラーになります。
プログラムを追う場合は、まずはこのMainがどこにあるかを探します。

変数

変数は簡単に言うと入れ物です。
変数の型 スペース 変数名 =(イコール) 変数に入れる値
の形式で記載します。
同じ変数を使い回す場合は、型の指定は不要になります。

使用例
// 入力した値を変数inputにセット
string input = System.Console.ReadLine();
// 変数を値を画面に表示
System.Console.WriteLine("入力された値:"+input);

この例では、string型(文字型)のinputという変数を使用しています。
System.Console.ReadLine();という命令は、画面(コマンドプロンプト上)からの入力待ちをする命令です。
inputの後ろに=繋ぎでSystem.Console.ReadLineを記載をすることで、input変数に入力された値が格納されます。
次のSystem.Console.WriteLineの行で文字列を表示しています。
"入力された値:"の後ろに+繋ぎでinputと記載することで、inputの部分が格納されている値になって表示されます。

名前空間とusingディレクティブ

名前空間はフォルダのような階層を作れる仕組みです。
名前空間で分類分けすることで、クラスの役割が分かりやすくなります。
クラスは名前空間とセットで一意になるため、同名のクラスを別の名前空間の中で作成することもできます。
usingディレクティブは名前空間を省略して記載できるようにする仕組みです。
最初にusingで指定しておくことで、その名前空間は省略することができます。
サンプルのプログラムを紹介します。

ファイル名:Program.cs
using System;

// 名前空間CSharpApplicationとしてクラスProgramを作成
namespace CSharpApplication
{
    class Program
    {
        static void Main()
        {
            // メッセージ表示 冒頭のusingでSystemを指定しているためSystem.なしで呼出せる
            Console.WriteLine("文字を入力してください。");
            // 入力した値を変数inputにセット
            string input = Console.ReadLine();
            // 変数を値を画面に表示
            Console.WriteLine("入力された値:"+input);
            // キー入力待ち
            Console.ReadKey();
        }
    }
}

このサンプルでは、CSharpApplicationという名前空間の中にProgramというクラスを作成しています。
名前空間は、.を付けることで階層構造にすることもできます。

使用例
namespace CSharpApplication.SampleProgram
{
    ・・・
}

サンプルプログラムでは、usingディレクティブにSystemを記載しました。
これによりSystem.Console.WriteLine(・・・)と記載すべきところを、Console.WriteLine(・・・)と記載することができます。
usingディレクティブは並べて記載することで、複数指定ができます。

使用例
using System;
using System.Data;