Какова функция ключевого слова "this" в конструкторе?
Я смотрел пример кода из MSDN только сейчас и пришел через:
namespace IListSourceCS
{
public class Employee : BusinessObjectBase
{
private string _id;
private string _name;
private Decimal parkingId;
public Employee() : this(string.Empty, 0) {} // <<--- WHAT IS THIS???
public Employee(string name) : this(name, 0) {}
Ответы
Ответ 1
Он вызывает другой конструктор в этом классе с этой сигнатурой. Его способ реализации конструктора в терминах других конструкторов. base
также можно использовать для вызова конструктора базового класса. У вас должен быть конструктор подписи, который соответствует этому, чтобы он работал.
Ответ 2
это позволяет вам вызвать другой конструктор класса Employee (current) с параметрами (string, int).
Это метод инициализации объекта, называемого Цепочка конструктора
Ответ 3
Этот пример может помочь некоторым различным выводам... Первый, очевидно, имеет два метода конструктора при создании экземпляра... например
FirstClass oTest1 = new FirstClass();
или
FirstClass oTest1b = новый FirstClass (2345);
Класс SECOND получен из FirstClass. обратите внимание, что у него тоже есть несколько конструкторов, но один из двух параметров... Двухпараметрическая подпись делает вызов конструктору "this()" (второго класса)... В свою очередь, вызывает BASE CLASS ( FirstClass) с целочисленным параметром...
Таким образом, при создании классов, полученных из других, вы можете ссылаться на свой метод конструктора классов OWN, или на его базовый класс... Аналогично в коде, если вы ОБРАТИТЕ метод, вы можете сделать что-то ДОПОЛНЕНИЕ к методу BASE()...
Да, больше, чем вы могли быть заинтересованы, но, возможно, это разъяснение может помочь и другим...
public class FirstClass
{
int SomeValue;
public FirstClass()
{ }
public FirstClass( int SomeDefaultValue )
{
SomeValue = SomeDefaultValue;
}
}
public class SecondClass : FirstClass
{
int AnotherValue;
string Test;
public SecondClass() : base( 123 )
{ Test = "testing"; }
public SecondClass( int ParmValue1, int ParmValue2 ) : this()
{
AnotherValue = ParmValue2;
}
}
Ответ 4
A constructor
- это специальный метод/функция, которая запускается для инициализации объекта, созданного на основе класса. Здесь вы запускаете инициализацию, как устанавливаете значения по умолчанию, инициализирует участников всеми способами.
"this
" - это специальное слово, которое указывает на тот самый собственный объект, в котором вы находитесь. См. это как референция объектов внутри самого объекта, используемого для доступа к внутренним методам и членам.
Ознакомьтесь со следующими ссылками: