どんな開発言語でも、コンソールアプリケーションから学び始めます。もちろん、C#でも、最初は、コンソールアプリケーションからはじめまず。
C# コンソール・アプリケーション・トピック
どんな開発言語でも、ほとんどの場合、最初に扱うのはコンソールアプリケーションです。
ここで紹介しているのは、C#の入門書で紹介されるコンソールアプリケーションを実行するための関連知識です。
空のプロジェクトを作成する
書籍のサンプルを実行するときは、空のプロジェクトから始めることを推奨していることが多いです。とはいえ、「コンソールアプリケション」のテンプレートを使って始めた方がトラブルが少ないです。
C#で作成したコンソールアプリケーションを実行するコマンドプロンプト
C#で作成したコンソールアプリケーションは、コマンドプロンプトで実行する必要があります。
C#のコメント
プログラム内には、コメントを記載できます。プログラムが読みやすくなるので、こまめに記述することをおすすめします。
単一行コメント
「//」でコメントが開始され、行の末尾でコメントが終了します。
// コメント
複数行コメント
「/*」で始まり、「*/」で終了します。
/*
コメント
*/
暗黙的に型指定されるローカル変数
C#では、変数を定義する際、型指定する必要があります。
変数の初期化を伴う場合は、「var」キーワードを指定することで、型指定を暗黙化して、コンパイラにやらせることができます。
var pi = 3.1416
この場合は、double型の変数として定義されます。
コンソール画面への文字出力とキーボードからの入力
コンソールアプリケーションは、コンピュータを高度に使いこなしている人には好まれますが、一般的には使用しません。 その為、プログラミング言語を学ぶ際に初めて利用する方も多いかと思います。C#で、コンソール画面への文字出力とキーボードからの入力の取扱に関することをここにまとめておきます。
IDEで実行した際、コンソールがすぐに閉じてしまい、出力を確認できない場合は、キーボードからの入力を確認するコードを追加すると、キーボードの入力があるまで、コンソール画面が表示されたままになります。
このConsole.ReadKey()メソッドを使用して、キー入力を求めることで、ウィンドウを閉じない方法とプロジェクトのプロパティで、出力の種類に、「コンソールアプリケーション」を指定する方法があります。
C#で行うファイルからデータの読み書き
C#に限らず、ファイル入出力は、一連のクラス階層として構築されているので、クラス、継承、例外といった概念が使われています。 その結果、開発言語の入門教材では、最後の方で、いきなり難しい説明と一緒に登場します。 結果、よく理解できません。ここでは、簡単に使うことを目的に、書籍やインターネット上の情報をまとめてみたいと思います。
データとプログラムの分離
そうは、言ったものの、初めからファイルを読み込みや書き込みを考えてプログラミングを行うとデータファイルとプログラムコードが別になるので、わかりやすくまとめにくく、扱いが面倒です。
そこで、プログラムコードの中に、データを書き込むハードコードと呼ばれる方法で、動作を確認し、その後、データとコードを分離します。
ハードコードと呼ばれるプログラムの中にデータを書き込む方法は、プログラムの保守がしにくくなるので、避けたほうが良い手法と言うのが定説です。 しかし、プログラムの動作を確認したり、説明したりする場合には、コードとデータを一緒に示すことができるので、便利でわかりやすくなります。
後から、プログラムの動きを確認するためのメモでは、ハードコードの手法を使い、実際のプログラムでは使わないという使い分けが必要です。
こういった細々とした使い分けが、入門教材で学んだ後、実際にプログラムを作成する際の障壁になっているとも考えられるので、注意が必要です。 そして、この問題をうまく避けている学習教材は、私の知る限り存在しないので、おそらく、どの教材を選んでも後で苦しむことになります。
データとコードの分離のように、機能ごとにプログラムを分割する設計は、デザインパターンと呼ばれるプログラムの保守性を高めるためのプログラミングスタイルに直結しています。 機能を追加する際、変化する部分と変化しない部分を考え、それぞれを分離独立させる手法についても想像して見ましょう。
usingの削除と並べ替え
使用していないusingは、簡単に削除することができます。
usingが表記されている部分で、右クリックし、表示されるコンテキストメニューから「usingの削除と並べ替え」を選択します。
使われていないUsing表記が削除されました。
自分で作成したクラスのデータメンバにToStringメソッドを実装する
自分で作成したクラスのデータメンバには、ToStringメソッドは、自動で実装されることはありません。ToStringメソッド使用したければ、自分で実装する必要があります。
文字列の型変換
文字列を数値型に変換する操作は、いろいろな場面で登場します。
C#で使える文字列操作のクラスとメソッド
C#では、文字列を扱うstringクラスやstringbilderクラスが予め用意されているため、文字列の扱いが簡単です。
リストクラス
C#では、リストクラスは、配列の代わりに使用します。配列とはことなり、動的に大きさを変更できます。
日付と時刻を扱うには
日付と時刻は、プログラムで扱う際、いろいろな場面で必要になります。自分で、実装するのは大変ですが、C#では、DateTime構造体が存在するので、これを使うことで解決できます。
C#で正規表現を使用する
C#は、文字列を簡単に扱うことができる開発言語の1つです。 文字列から、特定の文字列を検索したり、置換する際に、正規表現を使用すると、複雑な文字列操作を行うことができます。
C#で使う繰り返し構文
繰り返し構文は、プログラムを作成する際に頻繁に使用します。自分なりの使用パターンを確立するまでは、どの構文を使用するべきかよく考える必要があります。
スタートアッププロジェクトに指定する
複数のプロジェクトを持つ1つのソリューションでは、それぞれのプロジェクトから起動したいときがあります。
その際は、ソリューションエクスプローラの起動したいプロジェクト上で、右クリックし、「スタートアッププロジェクトに設定」を選択します。その後、このプロジェクトから実行されます。