C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#の「this」キーワードとは?基本の使い方と実例をわかりやすく解説

C#における「this」キーワードは、クラスの現在のインスタンス(自分自身)を参照するために使用されます。特に、メソッドのパラメータ名とクラスのフィールド名が同じ場合に、両者を明確に区別したいときに役立ちます。

また、「this」キーワードにはもう一つ重要な用途があります。それは、同じクラス内のあるコンストラクタから別のコンストラクタを呼び出すという使い方です。

thisキーワードの基本的な使い方

ここでは、学生の情報(ID、名前、年齢、科目)を管理する例を通して、「this」キーワードの役割を見ていきましょう。コンストラクタ内で現在のクラスのフィールドを参照するために、次のように「this」を使用します。

public Student(int id, String name, int age, String subject) {
    this.id = id;
    this.name = name;
    this.subject = subject;
    this.age = age;
}

このように this.id = id; と書くことで、「左辺のidはクラスのフィールド」「右辺のidは引数として渡された値」であることが明確になります。「this」を付けないと、どちらがフィールドでどちらがパラメータなのか曖昧になってしまうためです。

サンプルコード

それでは、「this」キーワードを使った完全なサンプルプログラムを見てみましょう。

using System.IO;
using System;

class Student {
    public int id, age;
    public String name, subject;

    public Student(int id, String name, int age, String subject) {
        this.id = id;
        this.name = name;
        this.subject = subject;
        this.age = age;
    }

    public void showInfo() {
        Console.WriteLine(id + " " + name + " " + age + " " + subject);
    }
}

class StudentDetails {
    public static void Main(string[] args) {
        Student std1 = new Student(001, "Jack", 23, "Maths");
        Student std2 = new Student(002, "Harry", 27, "Science");
        Student std3 = new Student(003, "Steve", 23, "Programming");
        Student std4 = new Student(004, "David", 27, "English");

        std1.showInfo();
        std2.showInfo();
        std3.showInfo();
        std4.showInfo();
    }
}

実行結果

このプログラムを実行すると、各学生オブジェクトの情報が以下のように出力されます。

1 Jack 23 Maths
2 Harry 27 Science
3 Steve 23 Programming
4 David 27 English

まとめ

C#の「this」キーワードは、主に以下の場面で活用されます。

  • クラスの現在のインスタンス自身を参照したいとき
  • パラメータ名とフィールド名が同じ場合に両者を区別したいとき
  • 同じクラス内の別のコンストラクタを呼び出したいとき

特にコンストラクタでの初期化処理では頻繁に使われる重要なキーワードなので、しっかりと理解しておきましょう。

  1. JavaScriptのアロー関数内で「this」キーワードにアクセスする方法を解説

    JavaScriptにおけるthisキーワードは、それが属するオブジェクトを参照します。しかし、アロー関数の中では、thisはグローバルオブジェクト(ブラウザ環境では window)を指すという特別な挙動を持ちます。通常の関数では、呼び出し方によって this が undefined になるケースがありますが、アロー関数の場合は定義されたスコープの this をそのまま引き継ぐため、常に正確な値を参照できるのが大きな特徴です。アロー関数における「this」の基本概念アロー関数には自身の this を持たないという重要な仕様があります。代わりに、外側の関数やスコープから this の値をレキシカ

  2. JavaScriptのthisキーワードとは?参照先のオブジェクトをわかりやすく解説

    JavaScriptのthisキーワードは、そのキーワードが属しているオブジェクトを参照します。大きな特徴として、使用される文脈によって参照先が変化するという点があり、これがthisの挙動を理解するうえで重要なポイントとなります。 thisが参照するオブジェクトの一覧 単独で使用した場合、または通常の関数内: グローバルオブジェクト(ブラウザ環境では window オブジェクト)を参照します。 オブジェクトのメソッド内: そのメソッドを所有するオブジェクト自身を参照します。 イベントリスナー内: イベントを受け取ったHTML要素を参照します。 サンプルコード 以下は、JavaScriptの