看书时书上习题答案的代码
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;
}
}
还有这个
实在理解不能 求指导
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;
}
}
还有这个
实在理解不能 求指导
http://msdn.microsoft.com/zh-cn/library/dk1507sz.aspx
因为在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的时候莫名出现的原因
我只是大致这个意思,不要和我认真,嘿嘿