非静态成员可以在构造函数或非静态方法中使用this.来调用或访问

时间:2022-04-25 03:57:35

1.         this关键字代表当前实例,我们可以用this.来挪用当前实例的成员要领,变量,属性,字段等;

2.         也可以用this来做为参数状当前实例做为参数传入要领.

3.         还可以通过this[]来声明索引器

下面用一段措施来展示一下this的使用:

// 引入使命空间System using System;
     // 声明定名空间CallConstructor namespace CallConstructor {
     // 声明类Car  

public class Car  

{   
     // 未用Static声明的变量叫做非静态成员
     //类的实例,我们只能在挪用类的结构函数对类进行实例化后才华通过所得的实例加"."来访谒    

int petalCount = 0;  // 在Car类中声明一个非静态的整型变量petalCount,初始值为0
    String s = "null";  // 声明一个非静态的字符串变量s,初始值为"null";注意:s = "null"与s = null是差此外 
    // Car类的默认结构函数   

Car(int petals)   

{
      petalCount = petals; // Car类的默认结构函数中为 petalCount 赋值为传入的参数petals的值      

Console.WriteLine("Constructor w/int arg            only,petalCount = " + petalCount); // 输出petalCount    }
  // 重载Car类的结构函数
  // : this(petals) 暗示从当前类中挪用petals变量的值来作为结构函数重载要领

Car(String s, int petals)的第二个参数   Car(String s, int petals) : this(petals)  

/*在结构函数中为s赋值。非静态成员可以在结构函数或非静态要领中使用this.来挪用或访谒,也可以直接打变量的名字,因此这一句等效于s = s,但是这时你会发类的变量s与传入的参数s同名,这里会造成二界说,所以要加个this.暗示等号左边的s是当前类本身的变量*/     

  this.s = s;
     Console.WriteLine("String & int args");

}
// 重载结构函数,: this("hi", 47) 暗示调Car(String s, int petals) 这个重载的结构函数,并直接传入变量"hi"和47
Car() : this("hi", 47)
{

  Console.WriteLine("default constructor"); } public static void Main(){        Car x = new Car();  

  Console.Read();