小弟初学,看了书好像是指当前的对象什么的,但是还是很糊途,好像很多地方都用到,还请指点,可否举个示例,谢谢

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!this.Page.IsPostBack)
    {
    this.TextBox1.Text="m";//可以这样理解:给本页面的TextBox1赋值
    this.TextBox2.Text="m";
    }
    }
    在这里this相当于本页面.
      

  2.   

    在这里this相当于本页面.--------
    补充一点,aspx页面会被编译一个类(通常继承自System。Web。UI。Page),
    对于这种问题,楼主应该先去看看面向对象编程语言,
    比如C++/Java /C# 都有介绍this这个关键字,this指的就是当前对象,
    其实在很多编译器中,类里面的成员都是通过this指针来显示引用的,
    。。
      

  3.   

    在调用一个类的函数时   比如
     
          Class1.Function(a);会将Class1的引用当做隐式参数传给Function,那么在function内部使用this实际上就是使用那个参数了。
      

  4.   

    象 Class1.Proc(3);这样的,delphi中编译出来的汇编代码 大致是这个样子:mov edx $00000003
    mov eax [Class1]
    call Class1.Proc而在Proc函数内部使用this的地方,比如this.a:=3;  汇编代码则是:mov [eax+a的偏移量] $00000003
      

  5.   

    to: 回复人: singlepine(小山) ( ) 信誉:100  2005-5-20 20:46:05  得分: 0  
     
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!this.Page.IsPostBack)
    {
    this.TextBox1.Text="m";//可以这样理解:给本页面的TextBox1赋值
    this.TextBox2.Text="m";
    }
    }
    这里的this不用也可以正常运行啊,为什么还要用啊
      

  6.   

    this 关键字将引用类的当前实例。静态成员函数没有 this 指针。this 关键字可用于从构造函数、实例方法和实例访问器中访问成员。
    以下是 this 的常用用途: 
    限定被相似的名称隐藏的成员,例如: 
    public Employee(string name, string alias) 
    {
       this.name = name;
       this.alias = alias;
    }
    将对象作为参数传递到其他方法,例如: 
    CalcTax(this);
    声明索引器,例如: 
    public int this [int param]
    {
          get
          {
             return array[param];
          }
          set
          {
             array[param] = value;
          }
       }
    在静态方法、静态属性访问器或字段声明的变量初始值设定项中引用 this 是错误的。
    示例
    在本例中,this 用于限定 Employee 类成员 name 和 alias,它们都被相似的名称隐藏。this 还用于将对象传递到属于其他类的方法 CalcTax。
    // keywords_this.cs
    // this example
    using System;
    public class Employee 
    {
       public string name;
       public string alias;
       public decimal salary = 3000.00m;   // Constructor:
       public Employee(string name, string alias) 
       {
          // Use this to qualify the fields, name and alias:
          this.name = name;
          this.alias = alias;
       }   // Printing method:
       public void printEmployee() 
       {
          Console.WriteLine("Name: {0}\nAlias: {1}", name, alias);
          // Passing the object to the CalcTax method by using this:
          Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));
       }
    }
    public class Tax 
    {
       public static decimal CalcTax(Employee E) 
       {
          return (0.08m*(E.salary));
       }
    }public class MainClass 
    {
       public static void Main() 
       {
          // Create objects:
          Employee E1 = new Employee ("John M. Trainer", "jtrainer");      // Display results:
          E1.printEmployee();
       }
    }
    输出
    Name: John M. Trainer
    Alias: jtrainer
    Taxes: $240.00