看的书是 visual c# how to programm
里面说。this 引用访问当前对象的成员,而且举了个例子。
然后就发现这个例子有点不懂了。当前对象的成员不用this 也能实现啊。直接调用那些不就可以了吗?为什么还要用this ?
using System;
public class thistest//建立一个test类
{
    public static void Main(string[] args)
    {
        simpletime time = new simpletime(15, 30, 19);//建立time对象用于测试,传入参数15,30,19
        Console.WriteLine(time.buildstring());//打印time中的buildstring方法返回的值
    }
}
public class simpletime//simpletime类
{
    private int hour;
    private int minute;
    private int second;//内部成员hour,minute,second
    public simpletime(int hour, int minute, int second)
    {
        this.hour = hour;
        this.minute = minute;
        this.second = second;
        //这里参数为什么也定义成hour,minute,second?定义成不一样的然后直接将类中的几个变量赋值不就可以了?
    }
    public string buildstring()
    {
        return string.Format("{0,24}: {1}\n{2,24}: {3}","this.touniversalstring()",this.touniversalstring(),"touniversalsring()",touniversalstring());//看不懂。既然返回的 值都是一样的,那还费劲弄this 干啥?    }
    public string touniversalstring()
    {
        return string.Format("{0:D2}:{1:D2}:{2:D2}",this.hour,this.minute,this.second);
    }
}

解决方案 »

  1.   


    class CTest
    {
       public int a;
       public int b
       public int Sum(int a, int b)
       {
          /*如果不用this,编译不知道是你用了那个变量,因为同名*/
          this.a = a;
          this.b = b;
       }
    };
      

  2.   

    就是说this 的作用就是在同名的情况下指定自己的类的变量而不是方法中的变量?
      

  3.   


    /*用索引的时候*/
    public object this[int index]
    {
        get { return list[index]; }
        set { list[index] = value; }
    }
      

  4.   


    /*自己类中有另一个类方法用到自己类类型对象。*/
    public class Test
    {
        class Msg;
        public SendMessage(this)
        {     }
    }
      

  5.   


    同名的时候,用this关键字不就是区分了变量是属于那里的。
      

  6.   

    this.可以让程序可读性更高啊,人家一看就知道是类的变量
    特别是在大的函数里的时候,大几十行的代码的函数里的时候
      

  7.   

    this关键字
    用于引用类的当前实例,也包括继承而来的方法
    this指代类对象本身,用于访问本类的所有常量、字段、属性和方法成员,而且不管访问元素是任何访问级别。this仅仅局限于对象内部,对象外部是无法看到的。另外,静态成员不是对象的一部分,因此不能在静态方法中引用this。