C#接口中的静态方法
C#的接口
在C#中接口中只能定义public修饰的方法,它们必须是某个实例才能使用的方法。如果我们有一组工具类需要去用接口进行约束,那么我们在调用该组类的方法时也只能实例化该类通过对象的方式去调用,身为强迫症的我这个我是无法接受的。
用单例类来模拟接口中的静态方法
首先我们先实现一个单例类模板
public class ISingleton<T> where T : ISingleton<T>, new()
{
private static T _instance;
public static T Instance
{
get
{
if (_instance == null)
{
_instance = new T();
}
return _instance;
}
}
}
然后实现一个接口
public interface IDataHelper
{
T LoadValue<T>(SqliteDataReader dataReadern, IDataBaseManger dataBase);
bool SaveData(IDataBaseManger dataBase);
}
最后让我们需要实现接口的类同时继承ISingleton和IDataHelper
public class DifficultyDataHelper : ISingleton<DifficultyDataHelper>, IDataHelper
{
public T LoadValue<T>(SqliteDataReader dataReadern, IDataBaseManger dataBase)
{
throw new NotImplementedException();
}
public bool SaveData(IDataBaseManger dataBase)
{
throw new NotImplementedException();
}
}
虽然有点繁琐,但总算是看着舒服了