Web Analytics Made Easy - StatCounter

Economics Of TEC

RPA,経済学,IT技術などに関する情報を発信しています。

【C#入門】関数・メソッドとは?役割と使い方について紹介

f:id:WillSpecter:20200811195608j:plain

C#を勉強していると、「クラス」「メソッド」「インスタンス」など色んな用語が出てきます。

今回は、コーディングの基本になる、「メソッド」について事例も含めて紹介します。

 

C#について、他にも記事を書いていますのでこちらも参考にしてください☆

◆関連記事◆

 

メソッドとは

メソッドとは、処理のまとまりごとに部品化して必要な時に使う仕組みのことです。

 

例えば、スーパーで買い物をするときを考えてみましょう。

 

全ての手順が箇条書きで書いてあると読みずらいですが、「商品を選ぶ工程」、「お会計をする工程」と区切ることで、全体の流れをつかみやすくなります。これが、メソッドの仕組みです。

 

f:id:WillSpecter:20200811140625p:plain

また、スーパーで別のものを買いにいく場合でも、「スーパーに行く工程」と「お会計をする工程」は共通しているため、同じ工程を必要なときに参照することができます。

 

以上を踏まえて、メソッドの役割は大きく二つあります。 

◆メソッドの役割◆
1.処理を分割してそれぞれメソッドにまとめることで、プログラムを読みやすくする
2.何度も出てくる処理をメソッドにすることで、プログラムを短くする

 

実際にプログラムを書くときのメソッドの構成としては、部品化した処理をかく「メソッド本体」と「作ったメソッドを呼び出す部分」の二つの構成になっています。

 

そして、メソッドを呼び出すときに、メソッドに値を渡すこと(引数)やメソッドで処理した結果を呼び出し元に渡す、戻り値を持たせることもできます。

 

よく使うのは、下記3つのパターンなので、それぞれ紹介させていただきます。

 

◆メソッドの3つのパターン
1.引数と戻り値のないメソッド
2.引数があるメソッド 
3.引数と戻り値があるメソッド

引数と戻り値のないメソッド

今回はshopという名前のメソッドを作成し、その中で「いらっしゃいませ。かごをお取りください。」と表示する処理を作成します。

 

■プログラム■

f:id:WillSpecter:20200811152011p:plain

■結果■

f:id:WillSpecter:20200811152020p:plain

 

■説明■ 

引数なし戻り値なしの場合のメソッド本体の書き方はvoid Shop() {処理} とします。

 

void は戻り値なし

Shop はメソッド名

() は引数がなし

という意味です。

 

*staticがついているものはstaticメソッドと呼び、staticメソッドからしか呼び出せないですが、Mainメソッドはstaticがついているので呼び出すことができます。

 

では、引数があるメソッドはどのように書いたらよいでしょうか?

引数があるメソッド

先ほどのプログラムの中に、商品名を渡すと、その商品の金額をコンソールに表示する(受け取った引数を表示する)メソッドを作成します。

 

■プログラム■

f:id:WillSpecter:20200811155410p:plain

■結果■

f:id:WillSpecter:20200811155532p:plain

 

■説明■ 

引数あり戻り値なしの場合のメソッド本体の書き方は

void SelectItem(string ItemName) とします。

 

void は戻り値なし

SelectItem はメソッド名

(string ItemName) は引数の型と引数の変数名

という意味です。


引数の型が数値の場合はintとします。また、引数が複数ある場合は,で区切って書きます。

 例)先ほどのメソッドに数値の2という引数を追加してみました

*呼び出し元

SelectItem("じゃがいも",2);

*メソッド本体

static void SelectItem(string ItemName,int QTY

引数と戻り値があるメソッド

先ほどのプログラムの中に、メソッドに商品名と個数を渡すと、その商品の金額を計算し、戻り値を渡して残金を表示するロジックを追加します。

■プログラム■

全体としては、Mainメソッド(赤枠)からShopメソッド(オレンジ枠)とSelectItem(青枠)を呼び出しています。

 

MainメソッドからSelectItemメソッドに「"じゃがいも".2」を引数として渡します。

また、SelectItemメソッドはPriceを戻り値としてMainメソッドに返します。

 

f:id:WillSpecter:20200811164759p:plain

 

■結果■

f:id:WillSpecter:20200811165501p:plain

 

■説明■ 

引数あり戻り値ありの場合のメソッド本体の書き方は

int SelectItem(string ItemName) とします。

 

int は戻り値の型

SelectItem はメソッド名

(string ItemName) は引数の型と引数の変数名

という意味です。

 

また、戻り値はReturn に続けて呼び出し元に渡す値を書く必要があります。

今回の例だと、"return Price;" ですね。

 

サンプルプログラムでは戻されたPriceをMoneyから差し引いて、残金を表示するようにしています。(長くなるので、詳細の説明は省きます、、><)

ひとこと

メソッドの役割と、利用する際の3つのパターンについて紹介させていただきました。

 

◆メソッドの3つのパターンと書き方まとめ
1.引数と戻り値のないメソッド: void メソッド名() {処理}
2.引数があるメソッド            : void メソッド名( 変数の型 変数名) {処理}
3.引数と戻り値があるメソッド: 戻り値の型 メソッド名( 変数の型 変数名) {処理}

 

C#を学び始めた頃は、「voidって何?(;・∀・)」、「なんで()に入るケースと入らないケースがあるの?(;・∀・)」などチンプンカンプンでしたが、ケースごとに理解することで知識を定着することができました。

 

今回の説明は「確かな力が身につくC# 「超」入門」を参考にさせていただきましたが(例題はオリジナルです)、「もっと前から読んでおきたかった!」と痛感しています、、。もし、C#について学び始めたという方は是非参考にしてみてください!(2020年7月に出版された新書です^^)