С# это ключевое слово
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
- C# статическое ключевое слово
- Глобальное ключевое слово Python
- Java это ключевое слово
- Окончательное ключевое слово Java
- Тест датчика DS18B20
- Учебное пособие по платформе автоматизации тестирования закодированного пользовательского интерфейса
- Блок тестирования датчиков Turck TB3-CP80
- Магнитные измерительные щупы Pomona MP1
- Тест COVID-19 на базе смартфона
- Испытание летающим зондом (FPT):знайте об этой методике тестирования печатных плат