///
/// 数据访问管理器
///
public class DataAccessManager : IDisposable
{
#region <变量>
///
///
///
//DataStoreCollection 为内部类
private DataStoreCollection _activeDataStores = new DataStoreCollection();
internal class DataStoreCollection : DictionaryBase
{
///
/// 添加dataStore方法
/// key:DataStoreNbr
/// value:dataStore引用
///
///
public void Add(DataStoreBase dataStore)
{
try
{
base.Dictionary.Add(dataStore.DataStoreNbr, dataStore);
}
catch
{
}
}
///
/// 按照dataStoreNbr判断是否包含指定dataStore引用
///
///
///
public bool Contains(long dataStoreNbr)
{
return base.Dictionary.Contains(dataStoreNbr);
}
///
/// 按照DataStoreNbr移除dataStore
///
/// dataStore
public void Remove(DataStoreBase dataStore)
{
if (dataStore != null)
{
base.Dictionary.Remove(dataStore.DataStoreNbr);
}
}
///
/// 按照DataStoreNbr移除dataStore
///
/// dataStoreNbr
public void Remove(long dataStoreNbr)
{
base.Dictionary.Remove(dataStoreNbr);
}
///
/// 索引器
///
///
///
public DataStoreBase this[long dataStoreNbr]
{
get
{
return (DataStoreBase)base.Dictionary[dataStoreNbr];
}
}
}
自己测试如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace testhasharrayds
{
public class outerrefinter
{
//外部类成员的类型可以是其内部类的类型,在此为内部类zxy,这样就可以从外部类访问内部类相关信息了
public zxy Out
{
get
{
//这是两种方式,一是通过引用变量,二是通过直接生成对象
//zxy z1 = new zxy("翟勋杨","陕西");
//return z1;
//属性一般与字段关联,在此属性直接与内部类关联起来,而且属性也可以与方法关联,属性是个很灵活的机制
return new zxy("翟勋杨", "陕西");
}
}
public class zxy //因为要在客户端代码访问此内部类zxy,它的访问修饰符定义为public
{
string name = string.Empty;
string addr = string.Empty;
public zxy(string _name,string _addr)
{
name = _name;
addr = _addr;
}
public string Name
{
get
{
return name;
}
}
public string Addr
{
get
{
return addr;
}
}
}
}
}
客户端调用
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
namespace testhasharrayds
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
outerrefinter nlytest = new outerrefinter();
//通过外部类outerrefinter
label3.Text = onlytest.Out.Name;
label4.Text = onlytest.Out.Addr;
}
}
}