Member 14479161 Ответов: 2

Это ключевое слово при использовании как и в случае с constractor chainning относится к текущему экземпляру или параметру


class Student
 {
     public int student_ID = 0;

     public string student_Fname = "";

     public string student_Lname = "";

     public string student_type = "";



     public Student()
     {

     }

     public Student(int ID)
         : this(ID , "", "")
     {

     }

     public Student(int ID, string Fname)
         : this(ID, Fname,"")
     {

     }
}


в текущем коде это ключевое слово при использовании как и в случае с constractor chainning относится к текущему экземпляру или параметру

Что я уже пробовал:

просто прочитайте об этом, но подумайте, что это относится к текущему параметру, а не к текущему экземпляру класса

Afzaal Ahmad Zeeshan

Нет, он не нацелен на текущие параметры, почему вы так думаете? :-)

2 Ответов

Рейтинг:
6

OriginalGriff

Это данный конкретный случай this относится к перегрузкам конструктора экземпляра. Это эквивалент написания этого кода:

public Student()
{
}

public Student(int ID)
{
    BuildIt(ID , "", "");
}

public Student(int ID, string Fname)
{
    BuildIt(ID, Fname, "");
}


Richard MacCutchan

Водитель городского автобуса?

OriginalGriff

Гипотетический метод использования параметров

Рейтинг:
15

Richard MacCutchan

Ключевое слово this всегда ссылается на текущий экземпляр заключающего класса.

У вас отсутствует один конструктор, поэтому код должен быть:

class Student
 {
     public int student_ID = 0;
     public string student_Fname = "";
     public string student_Lname = "";
     public string student_type = "";

     public Student()
     {
     }

     public Student(int ID)
         : this(ID , "", "")  // call the final constructor that takes 3 parameters
     {
     }

     public Student(int ID, string Fname)
         : this(ID, Fname,"") // same as above
     {
     }
     public Student(int ID, string Fname, string Lname)
     {
         // set the values of the fields of the class.
         student_ID = ID;
         student_Fname = Fname;
         student_Lname = Lname;
     }
}

Итак, конструкция : this(ID, Fname,"") просто вызывает конструктор с тремя параметрами (последний я добавил);


Member 14479161

привет спасибо за ответ не могли бы вы plese объяснить подробнее в соответствии с приведенным здесь примером

Richard MacCutchan

Смотрите мое обновленное решение.