Saturday, January 06, 2007

求教CollectionBase方面的一个问题

发信人: jueww (觉·无我), 信区: DotNET
标 题: 求教CollectionBase方面的一个问题
发信站: 水木社区 (Sat Jan 6 15:12:01 2007), 站内

我在学习CollectionBase在MSDN中的一个例子时,发现一个疑问。这个例子如下:
using System;
using System.Collections;

public class Int16Collection : CollectionBase {

public Int16 this[ int index ] {
get {
return( (Int16) List[index] );
}
set {
List[index] = value;
}
}

public int Add( Int16 value ) {
return( List.Add( value ) );
}

public int IndexOf( Int16 value ) {
return( List.IndexOf( value ) );
}

public void Insert( int index, Int16 value ) {
List.Insert( index, value );
}

public void Remove( Int16 value ) {
List.Remove( value );
}

public bool Contains( Int16 value ) {
// If value is not of type Int16, this will return false.
return( List.Contains( value ) );
}

protected override void OnInsert( int index, Object value ) {
// Insert additional code to be run only when inserting values.
}

protected override void OnRemove( int index, Object value ) {
// Insert additional code to be run only when removing values.
}

protected override void OnSet( int index, Object oldValue, Object newValue ) {
// Insert additional code to be run only when setting values.
}

protected override void OnValidate( Object value ) {
if ( value.GetType() != typeof(System.Int16) )
throw new ArgumentException( "value must be of type Int16.", "value" );
}

}


public class SamplesCollectionBase {

public static void Main() {

// Create and initialize a new CollectionBase.
Int16Collection myI16 = new Int16Collection();

// Add elements to the collection.
myI16.Add( (Int16) 1 );
}

这里在子类Int16Collection中出现了一个List,是CollectionBase的一个抽象property,那么这个List的field出现在哪儿呢?是在CollectionBase中的一个private吗?
--

※ 来源:·水木社区 http://newsmth.net·[FROM: 220.152.128.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]2发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: 求教CollectionBase方面的一个问题
发信站: 水木社区 (Sat Jan 6 15:34:12 2007), 站内

CollectionBase的protect属性

【 在 jueww (觉·无我) 的大作中提到: 】
: 我在学习CollectionBase在MSDN中的一个例子时,发现一个疑问。这个例子如下:
: using System;
: using System.Collections;
: ...................

No comments: