如何获得私有对象成员?
System.Collections.Specialized.OrderedDictionary Dic = new System.Collections.Specialized.OrderedDictionary();
Dic.Add( "a ", "aaa ");
Dic.Add( "b ", "bbb ");
Dic.Keys
:
因为Dic.Keys 类型[反射后查得]为 一个私有类System.Collections.Specialized.OrderedDictionary.OrderedDictionaryKeyValueCollection
求 获得keys列表的方法
------解决方案--------------------什么是私有类?
Keys是OrderedDictionary的公共属性,ICollection接口类型的
------解决方案--------------------我剛查過msdn2005,裡面的keys是public的。
------解决方案--------------------public ICollection Keys { get; }
获取 ICollection 对象,该对象包含 OrderedDictionary 集合中的键。
------解决方案--------------------TO:因为Dic.Keys 类型[反射后查得]为 一个私有类System.Collections.Specialized.OrderedDictionary.OrderedDictionaryKeyValueCollection
求 获得keys列表的方法
不就直接Dic.Keys就可以了吗?
它是公共的属性...
------解决方案--------------------参见MSDN:
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/cpref2/html/P_System_Collections_Specialized_OrderedDictionary_Keys.htm
example like :
// Creates and initializes a OrderedDictionary.
OrderedDictionary myOrderedDictionary = new OrderedDictionary();
myOrderedDictionary.Add( "testKey1 ", "testValue1 ");
myOrderedDictionary.Add( "testKey2 ", "testValue2 ");
myOrderedDictionary.Add( "keyToDelete ", "valueToDelete ");
myOrderedDictionary.Add( "testKey3 ", "testValue3 ");
ICollection keyCollection = myOrderedDictionary.Keys;
ICollection valueCollection = myOrderedDictionary.Values;
// Display the contents using the key and value collections
DisplayContents(keyCollection, valueCollection, myOrderedDictionary.Count);
------解决方案--------------------try..
OrderedDictionary myOrderedDictionary = new OrderedDictionary();
myOrderedDictionary.Add( "testKey1 ", "testValue1 ");
myOrderedDictionary.Add( "testKey2 ", "testValue2 ");
myOrderedDictionary.Add( "keyToDelete ", "valueToDelete ");
myOrderedDictionary.Add( "testKey3 ", "testValue3 ");
string[] mykeys = new string[myOrderedDictionary.Count];
string[] myvalues = new string[myOrderedDictionary.Count];
myOrderedDictionary.Keys.CopyTo(mykeys, 0);
myOrderedDictionary.Values.CopyTo(myvalues, 0);
for (int i = 0; i < myOrderedDictionary.Count; i++)
{
Console.WriteLine( "Key: " + mykeys[i] + "\tValue: " + myvalues[i]);
}
输出:
Key: testKey1 Value: testValue1
Key: testKey2 Value: testValue2
Key: keyToDelete Value: valueToDelete
Key: testKey3 Value: testValue3
------解决方案--------------------TO:如果用了数组的话,就用不了面向对象
用数组与面向对象有什么关系吗?
没太明白..