看的书是 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);
}
}
里面说。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);
}
}
解决方案 »
- 添加BindingNavigator运行程序后,为啥它始终为灰色,我已经设置了datasourse了啊
- 求教:如何编程打开一个已经存在的应用程序!!
- 这种情况会影响效率吗?
- 请问下在.net C#中写的哪些程式要关闭?
- 正则表达式的问题,谢谢大家帮忙了
- 关于打印工资报表的问题
- 如何在WEB程序中做类似OUTLOOK中的 便签?
- 如何用c#实现读取word文件内容(高分求100)
- DataGrid中的模板列中的Button问题????
- [100分求助] 如何用 Webbrowser 控件来点开 WebQQ 的登陆图标?
- 关于打印问题求助
- datagridview拖动列了,也就是datagridview变化了,能不能使跟它绑定的datatable也跟着变化
class CTest
{
public int a;
public int b
public int Sum(int a, int b)
{
/*如果不用this,编译不知道是你用了那个变量,因为同名*/
this.a = a;
this.b = b;
}
};
/*用索引的时候*/
public object this[int index]
{
get { return list[index]; }
set { list[index] = value; }
}
/*自己类中有另一个类方法用到自己类类型对象。*/
public class Test
{
class Msg;
public SendMessage(this)
{ }
}
同名的时候,用this关键字不就是区分了变量是属于那里的。
特别是在大的函数里的时候,大几十行的代码的函数里的时候
用于引用类的当前实例,也包括继承而来的方法
this指代类对象本身,用于访问本类的所有常量、字段、属性和方法成员,而且不管访问元素是任何访问级别。this仅仅局限于对象内部,对象外部是无法看到的。另外,静态成员不是对象的一部分,因此不能在静态方法中引用this。