スライドショー

【C#入門】メソッド(関数)を使いこなそう!基礎知識まとめ

メソッド(関数)の 基礎知識まとめ


C#の関数、メソッドって何?
関数の書き方や使い方が知りたい

引数ってどうやって書けばいいの?
publicって何?

こんにちは、エンジニアでC#ライターの遠藤です!

今回の記事では、コーディングの基礎になるメソッド関数について解説致します。

この記事を読んでいただけると、C#における関数・メソッドの意味から使い方から関連する基礎知識までを得られるかと思います。

以下のような方は、ぜひお付き合いください!

  • 関数・メソッドとは何か知りたい方
  • 関数の使い方が知りたい方
  • 細かな関連知識まで知りたい方

関数(メソッド)とは

関数・メソッドとは、一連の処理を一つにまとめて繰り返し使えるようにしたかたまりを言います。

繰り返し使えるようにすることで処理の重複を防いだり、メンテナンスしやすくなるなどの利点があります。

以下の例をご確認ください。

using System;

class Program
{
    public void HelloWorld(string lang)
    {
        Console.WriteLine("Hello {0}!", lang);
    }
    public static void Main()
    {
        Program obj = new Program();
        obj.HelloWorld("C#");
        obj.HelloWorld("C++");
    }
}

実行結果:

Hello C#!
Hello C++!

上記のサンプルコードにおける「 HelloWorld()」 が関数・メソッドになります。HelloWorld()は、入力された言語を使って "Hello 言語 !" という文字列を出力する処理のかたまりです。

処理と実行結果から、"C#", "C++"と2度 HelloWorld() が呼ばれている事がわかりますね。このようにして関数は繰り返し使うことができます。

「関数」と「メソッド」の違いは、定義が曖昧ではありますが、大きく言えば処理のかたまりを関数と言い、その中でオブジェクトにおける関数をメソッドと言います。C#はオブジェクト指向言語なので、「関数=メソッド」と捉えても特に不都合は無いかと思います。

関数の定義・使い方

それでは早速、関数の定義・使い方を覚えましょう!

関数の定義

関数を定義するさいの基本形は、以下のようになります。

class クラス名{

    戻り値の型 関数名()
    {
        //処理内容
    }
}

戻り値の型には、void(戻り値無し)を始め、int, string, booleanなど様々なものがあります。

また、関数名は基本的に英語で書くようにし、最初は大文字にしましょう。

先ほどの例では関数の最初に「public」という文字が入っていますが、こちらはアクセス修飾子と言います。アクセス修飾子については後ほど解説致します。

関数の呼び出し

関数の定義ができたところで、実際に呼び出してみましょう。

以下の例をご確認ください。処理の内容についてのコメントに注目してください。

using System;

class Program //クラスの定義
{
    public void HelloWorld() //メソッドの定義
    {
        Console.WriteLine("Hello World!"); //文字列を出力する
        Console.WriteLine("Let's enjoy C# life!");
    }
    public static void Main()
    {
        Program obj = new Program(); //クラスからインスタンスを生成
        obj.HelloWorld(); //インスタンス.メソッド名()でメソッドを呼び出す
    }
}

実際に呼び出すにはまず、その関数(メソッド)が属するクラスからインスタンスを生成します(サンプルの12行目)。

その後、「インスタンス名.メソッド名();」でメソッドを呼び出します(13行目)。このような流れで、関数は呼び出され実行されます。

引数のある関数

関数を呼び出すさいに、引数と呼ばれる値を渡す事ができます。引数を渡す事で、その値を使った処理をさせる事が可能です。

サンプルコード:

using System;

class Program //クラスの定義
{
    public void HelloWorld(String lang) //関数名(引数の型 引数の値)
    {
        Console.WriteLine("Hello World!");
        Console.WriteLine("Let's enjoy {0} life!", lang); //出力内容に引数の値を入れている
    }
    public static void Main()
    {
        Program obj = new Program();
        obj.HelloWorld("C#"); //引数として、"C#"を渡している
    }
}

実行結果:

Hello World!
Let's enjoy C# life!

上記の例では、関数を呼び出すときに引数として "C#" という文字列を渡しています。関数の方ではこの文字列を受け取って、元々の文字列と組み合わせて出力しています。

関数を呼び出す所の処理を、"Java"や"C++"などに変えてみると、実行結果が変わる事がわかります。

引数を渡す場合の処理の違いとして、関数を定義する所では「戻り値の型 関数名(引数の型 引数の値){}」という風に宣言しています。この関数を呼び出すときに、「インスタンス名.関数名(引数の値)」とする事で、呼び出しができるようになります。

このとき、関数の方と呼び出す側で引数の型が一致している必要がありますので注意してください。

アクセス修飾子について

先ほど述べましたが、関数を宣言する際に出てきた「public」はアクセス修飾子と言います。アクセス修飾子は、その関数がどの範囲で呼び出せるかのアクセスレベルを定義する修飾子です。

アクセス修飾子には、以下のような種類があります。

種類アクセスできる範囲
public ライブラリ内外問わずアクセスできる
private 同じクラス内または同じ構造体内からしかアクセスできない
protected 同じクラス内か、そのクラスから派生したクラス内からのみアクセスできる
internal 同じライブラリ内からしかアクセスできない
protected internal同じライブラリ内と、別のライブラリの派生クラス内からアクセスできる
private protected同じクラスのコードか、そのクラスから派生した同じライブラリ内の型でのみアクセスできる

コンストラクタについて

クラスとメソッドについて理解するうえで、コンストラクタは必ず知っておくべきメソッドです。コンストラクタは、インスタンスを生成したときに自動的に実行される関数で、そのクラスの初期化処理に使われます。

コンストラクタについては「(アクセス修飾子) クラス名(){//初期化処理}」というように、クラス名と同じ名前の関数として定義します。

コンストラクタについて詳しくは以下の記事で解説しています。

【C#入門】これだけは覚えておこう!コンストラクタ基礎知識まとめ
更新日 : 2019年6月11日

まとめ

今回の記事では、以下について解説致しました。

  • 関数・メソッドとは?
  • 関数の定義・使い方
  • アクセス修飾子
  • コンストラクタ

関数はプログラミングにおける基礎の基礎と言える内容です。ここで使い方を覚えて、関数・メソッドについてどんどん理解を進めていってください!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

遠藤貴大

遠藤貴大

1991年生まれ。双子座。
理系大学で認証システムを学んだ後、アプリ開発者となる。
新しく学ぶ人に寄り添った記事を心がけて執筆します。
芸術が好き。いつか猫と暮らすのが夢。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説