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 来实现,具体实现将在以后进行研究
查看全文
相关阅读:
python 四舍五入
Elasticsearch 入门
Mac下ElasticSearch安装、Kibana
Mysql 终端中文显示乱码
Zookeeper 在 Kafka 中的作用
mac 安装Kafka
Creating a NuGet Package in 7 easy steps
Updating and Publishing a NuGet Package
ASP.NET Core 发布
An entry point cannot be marked with the 'async' modifier
原文地址:https://www.cnblogs.com/jhtchina/p/261662.html
最新文章
2013 —— 满负荷前进
2014年发展计划
C# 版 flvmerge:快速合并多个flv文件
早起真好
使用Notepad++开发C#,一个复杂点的csscript脚本
把 Notepad++ 打造成一款易用的C#脚本编辑器
.NET 响应式自动缩略图服务器
Fitbit Flex 智能手环佩戴心得 主要说说过敏
.NET导入导出Excel
Xamarin Android中引用Jar包的方法
热门文章
3月21日微软社区大课堂
WcfDataService with EntityFramework 6 的若干问题
MiniProfiler 兼容 Entity Framework 6
Windows 2008 R2 Powershell 3.0
Microsoft.Bcl.Build 1.0.10 稳定版发布
Azure 删除VHD时报错:There is currently a lease on the blob and no lease ID was specified in the request
NServiceBus 更换服务名及队列名称
Docker Hello World
python String
Gunicorn启动时 nginx 400 request line is too large (4360 4094)
Copyright © 2011-2022 走看看