Какова функция ключевого слова "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" - это специальное слово, которое указывает на тот самый собственный объект, в котором вы находитесь. См. это как референция объектов внутри самого объекта, используемого для доступа к внутренним методам и членам.

Ознакомьтесь со следующими ссылками: