-3

何年もの間、私は「これ」がc#.netで何をしているのかを理解しようとしています

例えば

private string personName;

public Person(string name)
{
  this.personName = name;
}

public override string ToString()
{
  return this.personName;
}

}

4

3 に答える 3

2

thisメソッドが属するオブジェクトを参照します。他の回答で示されているように、スコープの選択に使用できます。現在のオブジェクトをオブジェクト全体 (つまり、特定のフィールドではなく、オブジェクト全体) として使用する場合にも使用できます。例:

public class Person{
    private string name;
    private Person parent;

    public Person(string name,Person parent=null;){
        this.name = name;
        this.parent = parent;
    }

    public Person createChild(string name){
        return new Person(name,this);
    }
}
于 2013-10-31T00:00:47.110 に答える
2

このthisキーワードを使用すると、現在のインスタンスのメンバーを明示的に参照できます。

あなたの場合は、簡単にそのままにしておくことができます.C#のルールはメンバー変数を見つけます。

ただし、メンバー変数と同じ名前のパラメーターを使用する場合、または同じ名前のローカルがある場合は、使用する変数をthis指定ます。これにより、次のことが可能になります。

private string personName;

public Person(string personName)
{
  // this finds the member
                    // refers to the argument, since it's in a more local scope
  this.personName = personName;
}

StyleCopのようなツールthisは、あいまいさを完全に取り除くため、あらゆる場所での使用を強制します。現在のインスタンス内でメンバーを設定する (または関数を呼び出すなど) ことを明示的に示しています。

于 2013-10-30T23:55:29.773 に答える
0

thisクラスのインスタンスを参照してください。普段はノイズになるので使わないのですが、場合によっては大事に使います。

public class Foo
{
    private string bar;
    public Foo(string bar)
    {
        //this.bar refer to the private member bar and you assign the parameter bar to it
        this.bar = bar;  

        //Without the this, the bar variable in the inner scope bar, as in the parameter.¸
        //in this case you are assigning the bar variable to itself
        bar = bar;
    }
}
于 2013-10-30T23:56:47.923 に答える