산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

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 값에 액세스할 수 있습니다. 및 num2 .

<시간>

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. 파이썬 전역 키워드
  3. 자바 이 키워드
  4. 자바 최종 키워드
  5. DS18B20 센서 테스트
  6. 코딩된 UI 테스트 자동화 프레임워크 자습서
  7. 터크 TB3-CP80 센서 테스트 박스
  8. Pomona 자기 테스트 프로브 MP1
  9. 스마트폰 기반 코로나19 테스트
  10. 플라잉 프로브 테스트(FPT):이 PCB 테스트 기술에 대해 알아보십시오.