• 数组下标是字符串的实现


    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 来实现,具体实现将在以后进行研究
  • 相关阅读:
    Webforms与MVC的区别
    简易留言薄系统ASP.NET MVC(Model层)
    DataBase First 方法
    ASP.NET MVC 与 数据库交互
    简易留言薄系统ASP.NET MVC(Controller层)(上)
    简易留言簿系统ASP.NET MVC (后台基本完成)
    简易留言簿系统ASP.NET MVC (数据库设计)
    简易留言簿系统ASP.NET MVC(页面文档)
    互动媒体学习社区ASP.NET MVC 开发文档
    简易留言簿系统ASP.NET MVC(文档)
  • 原文地址:https://www.cnblogs.com/jhtchina/p/261662.html
Copyright © 2020-2023  润新知