在类上创建静态的c#接口?

时间:2015-12-09 20:49:29

标签: c# interface

我有这个课程

spring-data-jpa-1.1.0.RELEASE.jar

所以现在我可以从课外访问:

class Class1
{
    public static List<int> abc = new List<int>();

}

我想做的是: 我想&#34; Class1&#34;从INTERFACE实施并实施这个&#34; abc&#34; 我可以做Class1.abc.Add(2);

我的意思是abc将在界面上..

我已经尝试过这样做,但我没有取得任何成功 我该怎么办? 谢谢!

1 个答案:

答案 0 :(得分:1)

正如其他人所说,只有对象可以在C#中实现接口。有关详细说明,请参阅Why Doesn't C# Allow Static Methods to Implement an Interface?

相反,您可以使用Factory(用于创建其他对象的对象)或Singleton模式(使用对象的单个实例)。这些可以实现一个接口,包括你提到的“添加”方法。

例如,而不是:

class Class1
{
    public static List<int> abc = new List<int>();
}

Class1.abc.Add(1); // Add numbers

......有类似......

interface IListInterface
{
    List<int> List;
}

class Lists: IListInterface
{
    public Lists()
    { 
        List = new List<int>();
    }

    public List<int> List
    {
         get;
    }
}

// Using the above
public void AddToList(IListInterface lists, int a)
{
    lists.List.Add(a);
}

通过使用接口标准化您对列表的访问,并允许您交换列表界面的实现,而不会影响使用代码,这对自动化测试很有用。