当前位置:编程学习 > C#/ASP.NET >>

高手请进!Hashtable的value是自定义类型时,如何取value?

//自定义结构 
struct T {public int a,public int b} 

Hashtable ht=new Hashtable(); 
T t=new T(..)

ht.add(1,t);

foreach (DictionaryEntry objDE in ht) 

    (T)(objDE.Value).  //这为什么不行呢? 

--------------------编程问答--------------------  foreach (DictionaryEntry objDE in ht) 

  T t=(T)(objDE.Value); 
      
  
} 这样也行 --------------------编程问答--------------------
引用 1 楼 hhc123 的回复:
foreach (DictionaryEntry objDE in ht)
{
  T t=(T)(objDE.Value);
     
 
} 这样也行

看到你刚才的答复了,谢谢! --------------------编程问答-------------------- 楼主的编码习惯很不好:

struct T {public int a,public int b} 
====>
struct T {
  public int a;
  public int b;
}


T t=new T(..) 
====>
T t = new T();


foreach (DictionaryEntry objDE in ht)
{
    (T)(objDE.Value).  //这为什么不行呢?
}
====>
foreach (DictionaryEntry objDE in ht)
{
    (T)(objDE.Value);  //这为什么不行呢?
}  


--------------------编程问答--------------------
引用 3 楼 jgood 的回复:
楼主的编码习惯很不好:

struct T {public int a,public int b}
====>
struct T {
  public int a;
  public int b;
}


T t=new T(..)
====>
T t = new T();


foreach (DictionaryEntry objDE in ht)
{
    (T)(objDE.Value).  //这为什么不行呢?
}
====>
foreach (DictionaryEntry objDE in ht)
{
    (T)(objDE.Value);  //这为什么不行呢?错
(T)(objDE.Value).  //这为什么不行呢?

你理解错了,
他的意思(T)(objDE.Value).(点)怎么a跟b就出不来 --------------------编程问答-------------------- Dictionary<string, T> hs = ....
foreach(KeyValuePair<string, T> kv in hs)
{
kv.Value...
}

参考: C# 2.0 泛型
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,