Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

С# это ключевое слово

C# это ключевое слово

В этой статье мы узнаем об этом ключевом слове в C# с помощью примеров.

В C# this ключевое слово относится к текущему экземпляру класса. Например,

using System;
 
namespace ThisKeyword {
  class Test {

    int num;
    Test(int num) {
      // this.num refers to the instance field
      this.num = num;
      Console.WriteLine("object of this: " + this);
    }

    static void Main(string[] args) {

      Test t1 = new Test(4);
      Console.WriteLine("object of t1: " + t1);
      Console.ReadLine();
    }
  }
}

Вывод

object of this: ThisKeyword.Test
object of t1: ThisKeyword.Test

В приведенном выше примере мы создали объект с именем t1. класса Тест . Мы напечатали имя объекта t1 и this ключевое слово класса.

Здесь мы можем видеть имена обоих t1 и this то же самое. Это потому, что this ключевое слово относится к текущему экземпляру класса, который равен t1 .

<час>

Вот некоторые из основных применений this. ключевое слово в C#.

C# это с переменными с одинаковыми именами

Мы не можем объявлять две или более переменных с одинаковыми именами внутри области видимости (класса или метода). Однако переменные и параметры экземпляра могут иметь одно и то же имя. Например,

using System;
 
namespace ThisKeyword {
  class Test {

    int num;
    Test(int num) {

      num = num;
    }

    static void Main(string[] args) {

      Test t1 = new Test(4);
      Console.WriteLine("value of num: " + t1.num);
      Console.ReadLine();
    }
  }
}

Вывод

0

В приведенной выше программе переменная экземпляра и параметр имеют одно и то же имя:num . Мы прошли 4 как значение для конструктора.

Однако мы получаем 0 как выход. Это связано с тем, что C# путается из-за того, что имена переменной экземпляра и параметра совпадают.

Мы можем решить эту проблему, используя this .

Пример:это с переменными с одинаковыми именами

using System;
 
namespace ThisKeyword {
  class Test {

    int num;
    Test(int num) {
      
      // this.num refers to the instance field
      this.num = num;
    }

    static void Main(string[] args) {

      Test t1 = new Test(4);
      Console.WriteLine("value of num: " +t1.num);
      Console.ReadLine();
    }
  }
}

Вывод

value of num: 4

Теперь мы получаем ожидаемый результат:4. . Это потому, что this.num ссылается на переменную экземпляра класса.

Таким образом, между именами переменной экземпляра и параметра нет путаницы.

<час>

Вызов конструктора того же класса с помощью этого

При работе с перегрузкой конструктора нам может потребоваться вызвать один конструктор из другого конструктора. В этом случае мы можем использовать this ключевое слово. Например,

using System;
 
namespace ThisKeyword {
  class Test {
    
    Test(int num1, int num2) {

      Console.WriteLine("Constructor with two parameter");
    }
    
    // invokes the constructor with 2 parameters
    Test(int num) : this(33, 22) {

      Console.WriteLine("Constructor with one parameter");
    }

    public static void Main(String[] args) {

      Test t1 = new Test(11); 
      Console.ReadLine();   
    }
  }
}

Вывод

Constructor with two parameter
Constructor with one parameter

В приведенном выше примере мы использовали : затем this ключевое слово для вызова конструктора Test(int num1, num2) из конструктора Test(int num) .

Когда мы вызываем Test(int num) конструктор Test(int num1, int num2) конструктор выполняется первым.

Примечание :вызов одного конструктора из другого конструктора называется цепочкой конструкторов.

<час>

C# это как аргумент объекта

Мы можем использовать this ключевое слово для передачи текущего объекта в качестве аргумента метода. Например,

using System;
 
namespace ThisKeyword {
  class Test {
    int num1;
    int num2;
      
    Test() {
      num1 = 22;
      num2 = 33;
    }

    // method that accepts this as argument   
    void passParameter(Test t1) {
      Console.WriteLine("num1: " + num1);
      Console.WriteLine("num2: " + num2);
    }

    void display() {
      // passing this as a parameter
      passParameter(this);
    }
  
    public static void Main(String[] args) {
      Test t1 = new Test();
      t1.display();
      Console.ReadLine();
    }
  }
}

Вывод

num1: 22
num2: 33

В приведенной выше программе у нас есть метод passParameter() . Он принимает объект класса в качестве аргумента.

passParameter(this);

Здесь мы прошли this в passParameter() метод. Как this относится к экземпляру класса, мы можем получить доступ к значению num1 и число2 .

<час>

для объявления индексатора C#

Индексаторы позволяют индексировать объекты класса так же, как массивы. Мы используем это ключевое слово для объявления индексатора в C#. Например,

using System;
namespace ThisKeyword {
      
  class Student {
      
    private string[] name = new string[3];
  
    // declaring an indexer
    public string this[int index] {

      // returns value of array element
      get {
        return name[index];
      }
      
      // sets value of array element
      set { 
        name[index] = value;
      }
    }
  }
  
  class Program {
  
    public static void Main() {
      Student s1 = new Student();
      s1[0] = "Ram";
      s1[1] = "Shyam";
      s1[2] = "Gopal";

      for (int i = 0; i < 3; i++) {

        Console.WriteLine(s1[i] + " ");
      }
    }
  }
}

Вывод

Ram
Shyam
Gopal

В приведенной выше программе мы создали индексатор, используя this. ключевое слово.

Массив имя[] является частным. Таким образом, мы не можем получить к нему доступ из Программы класс.

Теперь, чтобы получить доступ и установить значение массива, мы используем индексатор.

Student s1 = new Student();
s1[0] = "Ram";
s1[1] = "Shyam";
s1[2] = "Gopal";

Поскольку мы использовали this чтобы создать индексатор, мы должны использовать объект Student класс для доступа к индексатору. Чтобы узнать больше об индексаторе, посетите страницу индексатора C#.


Язык C

  1. C# статическое ключевое слово
  2. Глобальное ключевое слово Python
  3. Java это ключевое слово
  4. Окончательное ключевое слово Java
  5. Тест датчика DS18B20
  6. Учебное пособие по платформе автоматизации тестирования закодированного пользовательского интерфейса
  7. Блок тестирования датчиков Turck TB3-CP80
  8. Магнитные измерительные щупы Pomona MP1
  9. Тест COVID-19 на базе смартфона
  10. Испытание летающим зондом (FPT):знайте об этой методике тестирования печатных плат