pirvate static HashTable = new HashTable();

解决方案 »

  1.   

    这里很详细的讲述了,如何使用HashTable.http://chs.gotdotnet.com/QuickStart/howto/default.aspx?url=/quickstart/howto/doc/hashtable.aspx
      

  2.   

    VS.NET的帮助是个好东东!// Here we'll create a hashtable of employee numbers and employee names
    Hashtable table = new Hashtable();// now, we will add elements to the hashtable, as key-value pairs
    table.Add(5123, "Jay");
    table.Add(1829, "Tom");
    table.Add(2882, "Matt");
      

  3.   

    C#好像没有提供对应的方式,你可以使用一个变通的方式:
    pirvate static HashTable ht = InitHashtable();public static HashTable InitHashtable(){
    HashTable  ht =new HashTable();
    ht.Add(2882, "Matt");
    return ht;
    }
    [email protected]
      

  4.   

    to: colinfly(Colin) 
    那样的话,就要多出一个初始化的步骤,有几个静态的方法都要使用该静态成员,那么是否意味着每次都要检查该成员是否已经初始化过了?或许使用Builder Pattern 在使用前把他们包起来?这样太复杂了,没有实际意义。我只想要一个简单的方法。
      

  5.   

    private static Hashtable dataSetCache = Hashtable.Synchronized(new Hashtable());静态方法
      

  6.   

    private static Hashtable dataSetCache = Hashtable.Synchronized(new Hashtable());Hashtable SystemDate = new Hashtable();
      

  7.   

    其实这种方式就是java方式的变形。因为静态变量会在第一次装入类的时候初始化。所以不管你引用了哪个静态变量,都会先初始化第一个变量。如果你把其他变量的初始化操作同样防在那个InitHashtable()中(或则你可以使用一个更合理的名字,比如InitClass()).你并不需要检查变量是否初始化。他的效果就像java的那种方式一样。甚至你可以这样static int iNotUsed= InitClass();//就当这句话不存在就可以了,不过要保证这句话在最前面private static HashMap stringMap = new HashMap();private static InitClass(){ // 相当于java中  static{ stringMap.put(WF_PARSING_ERROR, "WF_PARSING_ERROR");return 0;} /// 相当于java中  }这样应该是一种可行的方式了。不过,当然浪费了一个int iNotUsed!  : )
      

  8.   

    to:colinfly(Colin)
    InitClass()是不是要返回一个int类型啊!哈哈谢谢!