DLL中的字典

时间:2015-08-09 13:36:56

标签: c# dictionary

我有这段代码:

public class Extension
{
    Dictionary<string, string> exts = new Dictionary<string, string>();
    public static void Add(string extcode, string desc)
    {
        exts.Add(extcode, desc);
    }
    public static void Del(string extcode)
    {
        if(exts.ContainsKey(extcode))
        {
            exts.Remove(extcode);
        }
    }
    public static bool Exists(string extcode)
    {
        if(exts.ContainsKey(extcode))
        {
            return true;
        }
        if(!exts.ContainsKey(extcode))
        {
            return false;
        }
    }
}

问题是当我尝试在Add,Del和Exists类中使用exts Dictionary时,它说:

  

非静态字段,方法或属性“Filext.Extension.Ext”

需要对象引用

我想在每个函数中使用Dictionary方法,而无需创建新字典或克隆它。 我的想法是当我使用Extension.Add("aaa","description")Remove("aaa")Exists("aaa")时,通过密钥在字典中添加或删除它。

2 个答案:

答案 0 :(得分:3)

您的方法为Dictionary,因此您的static声明也应为private static Dictionary<string, string> exts = new Dictionary<string, string>(); 。您不能在静态方法中使用类实例成员

{{1}}

答案 1 :(得分:1)

问题是此类的方法是static定义的。您有两个解决方案:更好的方法是通过在方法定义之前删除static关键字来定义方法静态。最糟糕的解决方案是定义ext字典static