我想要的是一个可以具有任何类型的可配置属性/变量的类。并且设置和获取这些配置的方式是在一个接口中定义的。它将成为某种插件架构。每个插件都有自己的未知类型的可配置参数(让它是字符串、双精度、整数等)。用户将能够在 GUI 中设置这些,这些将由插件的主机应用程序存储在数据库中。
问题是,在设置任何类型的这些配置时,我怎么不知道如何实现这种抽象形式。如果在配置类时不需要强制Object
转换为例如 a那就太好了。double
我有这段pseudo
代码让自己更清楚,见下文。
public class Configurable<T>
{
string Name;
T Value;
string Description;
}
public interface iAmConfigurable
{
void Set(Configurable<T>);
Configurable<T> Get(string name);
}
public abstract class MyBaseClass : iAmConfigurable
{
public abstract void Set(Configurable<T>);
public abstract Configurable<T> Get(string name);
}
public class MyDerivedClass : MyBaseClass
{
Configurable<int> MinimumSlope = new Configurable<int>
{
Name = "MinimumSlope",
Value = 20,
Description = "The lowest the slope of the trend may get before triggering the alarm"
}
public abstract void Set(string name, T value)
{
if(name == "MinimumSlope") MinimumSlope.Value = value;
}
public abstract Configurable<T> Get(string name)
{
if(name == "MinimumSlope") return MinimumSlope;
}
}