新人求问 c#中this的用法

昨夜无月 2012-02-12 02:17:03
看书时书上习题答案的代码
public class ShortCollection<T>:IList<T>
{
protected Collection<T> innerCollection;
protected int maxSize = 10;
public ShortCollection()
: this(10)
{
}
public ShortCollection(int size)
{
maxSize = size;
innerCollection = new Collection<T>();
}
public ShortCollection(List<T> list)
: this(10, list)
{
}
那两个this时怎么个意思???
public T this[int index]
{
get
{
return (innerCollection as IList<T>)[index];
}
set
{
(innerCollection as IList<T>)[index] = value;
}
}
还有这个
实在理解不能 求指导
...全文
49 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nonocast 2012-02-12
  • 打赏
  • 举报
回复
呵呵,this就是自己,this instance
因为在class中写的method是作为instance的template
所以instance会在runtime动态持有method
比如说,
class SampleClass {
public void SampleMethod(){...}
}

SampleClass是类,是实例的模板
SampleClass instance = new SampleClass();
instance就是SampleClass的一个实例了,再new再多一个实例,
instance.SampleMethod()看上去是一个类的方法,其实对编译器来说还是全局方法
SampleClass_SampleMethod(SampleClass this);
而这个this就是实例的标识,也就是为什么会在写class的时候莫名出现的原因
我只是大致这个意思,不要和我认真,嘿嘿
gomoku 2012-02-12
  • 打赏
  • 举报
回复
MSDN帮助(this 关键字):
http://msdn.microsoft.com/zh-cn/library/dk1507sz.aspx

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧