zoukankan      html  css  js  c++  java
  • 数组下标是字符串的实现

    using System;

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

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



    此方法也可以用 Hashtable 来实现,具体实现将在以后进行研究
  • 相关阅读:
    Ruby 2
    Ruby 1
    莱布尼兹:与牛顿争吵了一生的斗士 微积分的奠基人之一―莱布尼茨
    如何实现html页面自动刷新
    css z-index的层级关系
    让网页变灰的实现_网站蒙灰CSS样式总汇
    利用CSS变量实现炫酷的悬浮效果
    离线电商数仓(十四)之系统业务数据仓库数据采集(一)电商业务简介
    离线电商数仓(十三)之用户行为数据采集(十三)采集通道启动/停止脚本
    离线电商数仓(十)之用户行为数据采集(十)组件安装(六)采集日志Flume(二)消费Kafka数据Flume
  • 原文地址:https://www.cnblogs.com/jhtchina/p/261662.html
Copyright © 2011-2022 走看看