佐々木屋

技術的なことから趣味まで色々書きます

this参照

this(VB.NETはMe)が一体どういう意味を持っているのか、どういったときに使用するのかを説明します。

そもそも、ローカル変数とフィールド変数の名前がかぶらなければお目にかかることはないわけですが、オブジェクト指向型言語であれば一度や二度はかぶってしまったことがあるのではないでしょうか。

通常名前がかぶった場合はローカル変数が優先されますが、this参照するとフィールド変数を優先してくれます。

public string naiyo = "piyo";
public void Test() {
    string naiyo = "hoge";
    Console.WriteLine(naiyo);
    Console.WriteLine(this.naiyo);
}
Private naiyo As String = "piyo"
Public Sub Test()
    Dim naiyo As String = "hoge"
    Console.WriteLine(naiyo)
    Console.WriteLine(Me.naiyo)
End Sub
hoge
piyo



別に違う変数名にすればと思うかもしれませんが、オブジェクト指向のクラス設計上やむを得ない時があるのです。

なお、this参照は静的クラスでは使用できません。