数组下标是字符串的实现

None.gif using System;
None.gif
None.gifnamespace Oceansoft.LOGERP.MessageClient.MessageHeadAffirm
None.gif{
None.gif    
///   < summary >
None.gif    
///   报文头的形成  
None.gif    
///   作者:贾海天
None.gif    
///   </ summary >
None.gif    
public  class MessageHead
None.gif    {
None.gif        
// 相关数组中存储项目的数组
None.gif        protected object
[]  _items;
None.gif        
// 数组中的项目数
None.gif        protected 
int  _ count = 0 ;
None.gif        
public   int  Length
None.gif        {
None.gif            get
None.gif            {
None.gif                
return  _ count ;
None.gif            }            
None.gif        }
None.gif        
public  object this [ string key ]
None.gif        {
None.gif            get
None.gif            {
None.gif                
return  KeyToObject( key );
None.gif            }
None.gif            
set
None.gif            {
None.gif                AddToArray(
key ,value);
None.gif            }
None.gif        }
None.gif        protected bool KeyExists(string 
key )
None.gif        {
None.gif            
for  ( int  n = 0 ;n < _ count ;n ++ )
None.gif            {
None.gif                KeyItemPair pair
= (KeyItemPair)_items [ n ] ;
None.gif                
if  (pair. key == key )
None.gif                {
None.gif                    
return  true;
None.gif                }
None.gif            }
None.gif            
return  false;
None.gif        }
None.gif        protected void AddToArray(string 
key ,object item)
None.gif        {
None.gif            
if  (!KeyExists( key ))
None.gif            {
None.gif                _items
[ _count ] = new KeyItemPair( key ,item);
None.gif                _
count ++ ;
None.gif            }            
None.gif        }
None.gif        protected object KeyToObject(string 
key )
None.gif        {
None.gif            
for  ( int  n = 0 ;n < _ count ; ++ n)
None.gif            {
None.gif                KeyItemPair pair
= (KeyItemPair)_items [ n ] ;
None.gif                
if  (pair. key == key )
None.gif                {
None.gif                    
return  pair.item; 
None.gif                }
None.gif            }
None.gif            
return   null ;
None.gif        }
None.gif        
public  MessageHead( int  MessageHead_Length)
None.gif        {
None.gif            
//
None.gif            
//  TODO: 在此处添加构造函数逻辑
None.gif            
//
None.gif            _items
= new object [ MessageHead_Length ] ;
None.gif        }
None.gif        protected struct KeyItemPair
None.gif        {
None.gif            
public  object item;
None.gif            
public  string  key ;
None.gif            
public  KeyItemPair(string k,object obj)
None.gif            {
None.gif                
key = k;
None.gif                item
= obj;
None.gif            }
None.gif        }
None.gif    }
None.gif}
None.gif
使用方法(方法不是很完整,可以继续扩展):
None.gif MessageHead MH = new MessageHead( 3 );
None.gifMH
[ "Confirm_NO" ] = "aaa";
None.gifMH
[ "IO_Seq" ] = "bbb";
None.gifMH
[ "Gross_Pack_NO" ] = "ccc";
None.gif

注意:
Struct 的实现是在栈里面实现的
Class   实现是在托管堆里面实现的
Class里面的方法是在托管堆里面的方法表里面保存的.



此方法也可以用 Hashtable 来实现,具体实现将在以后进行研究
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值