首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

高份求解简单有关问题 !进来有分

2011-12-22 
高份求解简单问题 !进来有分tatic Hashtable _hasResObject new Hashtable()static public CResObjectI

高份求解简单问题 !进来有分
tatic Hashtable _hasResObject = new Hashtable();
static public CResObjectInfo GetResObjectInfo(int nResID, int nConfigID)
{
Hashtable resObj = _hasResObject[nResID] as Hashtable ;
if( resObj == null )
{
resObj = new Hashtable();
_hasResObject[nResID] = resObj;
}

CResObjectInfo resConfig = resObj[nConfigID] as CResObjectInfo ;
if( resConfig != null )
{
return resConfig ;
}

resConfig = new CResObjectInfo();
if ( !resConfig.LoadResBaseInfo(nResID, nConfigID))
{
return null;
}
resObj[nConfigID] = resConfig;
return resConfig;
}
大家帮我看看 这个程序是赶什么用的 我看不懂啊

[解决办法]

C# code
static Hashtable _hasResObject = new Hashtable(); //静态Hash表,共享给该类所有实例static public CResObjectInfo GetResObjectInfo(int nResID, int nConfigID){Hashtable resObj = _hasResObject[nResID] as Hashtable ;  从共享Hash表的nResID键读取值并转换为Hash表if( resObj == null ){resObj = new Hashtable();_hasResObject[nResID] = resObj; 如果该位置不存在对象或者找到对象但转换成Hash表失败,则新建一个Hash表放到该位置(nResID位置)}CResObjectInfo resConfig = resObj[nConfigID] as CResObjectInfo ; 从共享Hash表的nConfigID键读取值并转换为CResObjectInfoif( resConfig != null ){return resConfig ; 该位置存在对象并转换CResObjectInfo成功,则返回该对象,退出...}resConfig = new CResObjectInfo(); //否则新建CResObjectInfo对象if ( !resConfig.LoadResBaseInfo(nResID, nConfigID))  //调用新建对象的LoadResBaseInfo方法(该方法内容未知,猜测可能是以同样的参数读取默认信息,并给新建的CResObjectInfo对象赋予内容){return null; //读取失败则返回null}resObj[nConfigID] = resConfig; //读取成功则在共享Hash表的nConfigID键位置写入该含有信息的新CResObjectInfo对象return resConfig; //返回该对象}
[解决办法]
这个应该是1.0的写法吧??

static Hashtable _hasResObject = new Hashtable();//声明一个Hashtable对象
static public CResObjectInfo GetResObjectInfo(int nResID, int nConfigID)
{
Hashtable resObj = _hasResObject[nResID] as Hashtable ;//从_hasResObject中根据Key获取对象(Key为nResID),很明显_hasResObject的Value类型为hashtable
if( resObj == null )//如果获取的对象为null,也就是说_hasResObject不存在Key为nResID的对象
{
//初始化对象,并且把对象保存进_hasResObject,Key为nResID,Value为空的Hashtable
resObj = new Hashtable();
_hasResObject[nResID] = resObj;
}

//如果存在数据,根据nConfigID从resObj中获取CResObjectInfo对象 
CResObjectInfo resConfig = resObj[nConfigID] as CResObjectInfo ;
if( resConfig != null )
{
//如果有就返回
return resConfig ;
}

//如果没有则初始化,并且保存
resConfig = new CResObjectInfo();
if ( !resConfig.LoadResBaseInfo(nResID, nConfigID))
{
return null;
}
resObj[nConfigID] = resConfig;
return resConfig;


很简单的一段代码
如果是2.0用泛型就会好很多~~~

热点排行