C#で自分自身を指す「thisキーワード」とは?
C#の thisキーワード は、クラスの内部で「自分自身のインスタンス」を表す特別な参照です。
主にフィールドやプロパティと引数の名前が重なったときに、区別するために使われます。
基本構文と使いどころ
public class Person {
private string name;
public void SetName(string name) {
this.name = name; // thisでフィールドと引数を区別
}
}
上記のように、this.name
は「クラスのフィールド」、name
は「メソッドの引数」を指します。
thisの主な用途
- フィールドと引数の名前が重なったときの区別
- 自分自身のインスタンスを他のメソッドに渡す
- コンストラクタから別のコンストラクタを呼び出す
- メソッドチェーンを実装する
コンストラクタの中でthisを使う例
public class Product {
public string Name;
public int Price;
public Product() : this("未定", 0) { }
public Product(string name, int price) {
this.Name = name;
this.Price = price;
}
}
this("未定", 0)
のように、他のコンストラクタを呼び出すこともできます(コンストラクタのオーバーロード)。
thisを使ったメソッドチェーンの例
public class Builder {
private string result = "";
public Builder Add(string s) {
result += s;
return this; // 自分自身を返すことでチェーン可能
}
public void Show() {
Console.WriteLine(result);
}
}
new Builder().Add("Hello ").Add("World!").Show(); // → Hello World!
注意点
static
メソッド内では thisは使えません
this
は インスタンスが生成されている状態でのみ有効です
まとめ
thisキーワードは、C#のクラス内で「自分自身(インスタンス)」を表すために使われる特別なキーワードです。
主に、引数とフィールドの区別や、コンストラクタの連携、メソッドチェーンなどで活用されます。
this
を上手に使うことで、可読性の高い、安全なクラス設計が実現できます!