C #: использование этого в конструкторе - PullRequest
4 голосов
/ 05 ноября 2011

В C # нормально ли использовать это в конструкторе? (то есть можно ли ссылаться на экземпляр в конструкторе)

В качестве простого примера:

public class Test{

 public Test()
 {
    Type type = this.GetType()
 }

}

Ответы [ 2 ]

5 голосов
/ 05 ноября 2011

Да, вы можете использовать this в конструкторе, но не в инициализаторах поля.

Так что это недействительно:

class Foo
{
    private int _bar = this.GetBar();

    int GetBar()
    {
        return 42;
    }
}

Но это разрешено:

class Foo
{
    private int _bar;

    public Foo()
    {
        _bar = this.GetBar();
    }

    int GetBar()
    {
        return 42;
    }
}
1 голос
/ 05 ноября 2011

Вы ищете что-то подобное?

public class Test{

 private string strName;
 public Test(string strName)
 {
    this.strName = strName;
 }

}

Я думаю, что хорошо использовать в каждой части класса идентификатор this ... Атрибуты, Методы, Свойства, потому что он получает большенамекая на то, что вы модифицируете или используете, в сложных или больших классах, это поможет вам быстрее узнать, что вы используете, но, как я уже сказал, с моей точки зрения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...