どうも、**臨床工学プログラマken**です。
初投稿です。
エンジニアに転職して一年弱、身に付けた基礎知識を人に説明してより理解を深め、誰かの役に立ってくれたら幸いですし、凄腕エンジニアの方からご意見も得られたらいいなと思い、Qiitaの投稿を始めることにしました。
早速いきます。
C#で初めてコンソールアプリを動かす時、おそらく多くの人がコンソール画面に
「Hallo World!」
と出力するかと思いますが、
ただHallo World!と出力するだけなのになんかコード長くない?
と思ったことないですか?
PHPやRubyを学習したことあるなら尚更そう感じるかと思います。
今回は基礎の文字列出力するコードの細かい箇所を解説していきます。
C#で「Hallo World!」を出力するときの細かいところを解説
以下のコードを実行することでコンソール画面に「Hallo World!」と出力する事ができます。
using System;
namespace test_1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.ReadKey();
}
}
}
一行目から解説していきます。
###usingについて###
using System; // 名前空間の指定
usingは指定した名前空間に属するクラスをクラス名だけで呼び出すことを可能にするキーワードです。
ここでは指定した名前空間であるSystem名前空間に含まれるクラスを呼び出せるようにしています。
usingを使わなくても呼び出すことは可能ですが、その場合は
System.Console.WriteLine
のようにクラスを呼び出すたびに名前空間名からの記述が必要になるので、複数回呼び出すクラスがあるときは基本的にはプログラムの最初にusingで記述して、以降はクラス名だけで呼び出せるようにしてます。
###namespaceについて###
namespace test_1 // 新規の名前空間の宣言
{
}
namespaceは名前空間を宣言するキーワードです。
今回の例で言うと、{}で囲まれた箇所がtest_1という名前空間に属することになります。
###classについて###
class Program // クラスの宣言
{
}
classはクラスを宣言するキーワードです。
[]で囲まれた箇所がProgramクラスに含まれます。
###static void Main(string[] args)について###
static void Main(string[] args) // メソッドの宣言
{
Console.WriteLine("Hello World!");
Console.ReadKey();
}
メソッドの宣言部です。
メソッドは簡単に言うと、プログラムを実行するための処理をひとまとめにしたコードのブロックのことです。
{}で囲まれた中がメソッド内の処理です。
メソッドですが、プログラムの中に単独で記述して使うことはできず、必ずクラスの中に含める必要があります。
また、C#ではMain()という名前がついたメソッドが最初に実行される決まりになっています。
メソッドの基本的な書き方としては
アクセス修飾子 戻り値のデータ型 メソッド名(パラメーター)
のような書式で記述します。
今回のコードに当てはめると
・アクセス修飾子→なし(アクセス修飾子は省略可能、メソッドの場合アクセス修飾子を省略した時はデフォルトでprivateとなります。)
アクセス修飾子の後にstaticキーワードをつけると、静的メンバーとして扱うことになります。
staticな変数やメソッドは、インスタンスを作成してから呼び出す必要はなく、クラス名.メンバー名で呼び出すことが可能です。
・戻り値のデータ型→なし(戻り値がないメソッドの時にはvoidと記述します)
・パラメーター→string[] args
ちなみにこのstring[] argsはコマンドライン引数と呼ばれています。
アプリケーションを起動する際に渡されるオプションの値となります。
そしてこのMainメソッド内でConsole.WirteLineを呼び出して文字列を出力しています。
(System名前空間のConsoleという静的クラスのWirteLineメソッドを呼び出しています)
###まとめ###
以上がC#のプログラムを実行する際の基本的な構成となります。
学習を始めた最初のうちはこの辺りは気にしなくても、特に支障はありませんが、開発などをする際にはこれらの細かい要素を理解している必要があります。
今回はそれぞれ本当に簡単に解説しました。
最後まで読んでいただきありがとうございました。
ちなみに僕は趣味で個人ブログを運営しております。
前職の臨床工学技士のことや、筋トレ初心者がベンチプレス100kg上げる方法、医療職からエンジニアに転職した方法などについて、個人ブログで発信していますのでご興味ある方は覗きに来てください。
臨床工学プログラマブログ
今後もC#関連の基礎的な内容で記事作成していきたいと思います。
どうぞよろしくお願いします。
参考文献リンク
C#を攻略しよう アクセス修飾子
ピーコックアンダーソン