我有两节课:
public class Variable<T>;
public class Closure;
两者都具有以下属性:
public string handle;
public string description;
两者都有名为的方法GetValue
:
public T GetValue(); // Variable<T>
public string GetValue(params string[] arguments); // Closure
Variable<T>
有一个额外的方法SetValue
:
public string SetValue(object newValue);
这些类代表视频游戏、控制台组件属性。
我想要做的是,将这两者保持在一个Directory
中,同时允许轻松访问/操作公共属性、类的方法。
我确实尝试添加一个 dummy interface
,但它失去了与对象的关系,返回接口实例,因此阻止我使用那些公共属性、方法:
public static class Storage
{
public static Dictionary<string, IConsoleProperty> Variables = new Dictionary<string, IConsoleProperty>();
public static string Inform()
{
string output = "";
foreach (var variable in Variables)
{
output += string.Format("{0} : {1}", variable.Key, variable.Value.description);
}
return output;
}
}
类型
Console.IConsoleProperty
不包含定义,description
也找不到扩展方法description' of type
Console.IConsoleProperty`(您是否缺少 using 指令或程序集引用?)
我读到我应该在这种情况下进行转换,但我不知道如何从字符串 ( typeof(variable.Value)
) 动态转换,尤其是Generic
对于多种类型的实例。
如何将这两个类保存在一个目录中,但在检索值时,获取基类实例而不是接口?