我必须在运行时设置一些属性,但我遇到的问题是一些属性有 5 个设置,而另一个可能有 3 或 4 个。有没有一种方法可以创建一个通用类,它可以保存任意数量的设置无需编写多个类的属性?
一个示例是我有一个名为的属性Color
,其唯一设置是,Color
但在另一种情况下,我有一个Mask
名为MaskType
Mask
这是一个经典,解决方案实际上取决于您希望如何访问您的属性。
在 ASP.NET 中,缓存使用如下内容:
public class Cache
{
private Dictionary<string, object> CachedValues;
public object this [string arg]
{
get
{
return CachedValues[arg];
}
}
}
或者你可以使用Tuple<T1, T2, T3...>
或者您可以使用dynamic
匿名类型
您可能想看看ExpandoObject。它允许您动态添加属性及其值,尽管它确实需要 .NET 4 或更高版本。
我认为编写代表您的各个对象的各个类总是更好。在我看来,您只会在尝试编写泛型类时产生更多问题。也许看看工厂或适配器模式来决定在不同场景中使用哪些类。